home *** CD-ROM | disk | FTP | other *** search
/ Risc World Words - Complete RISC World 1 to 6 / Risc World Words - Complete RISC World 1 to 6.iso / HTML / VOLUME1 / ISSUE2 / TEXT < prev   
Text File  |  2006-03-20  |  140KB  |  1,584 lines

  1.  
  2. ÿÿÿÿVOLUME1/ISSUE2/ADONAIS/INDEX.HTM Volume 1, Issue 2, Using Ovation Pro
  3.  
  4.  
  5.  
  6.  
  7. An Ovation for the Ballet
  8. I recently designed a brochure (what we call the 'programme' when talking to the printer) for Adonais Ballet Company's production of Carmen. To do this, I used the Company's own A7000+ computer and Ovation Pro to prepare the text layout. This Brochure had 24 pages, including inside and outside covers, with 12 pages of full colour and 12 of black and white
  9. This article is a light account of the process of putting the brochure together, describing the choices that I made along the way and a giving bit of insight into what guided them.
  10.  
  11. The Brochure format
  12. Before touching the computer, I talked to the printer about the cost of printing different sized brochures with different numbers of pages and paper weights
  13. One of the most important issues was having the overall size manageable for customers in the theatre. An A4 size would have been too big, A5 was too small and would have required many more pages to fit everything in. The Company finally chose a page size that was the same width as A4, but square: 210mm by 210mm. This format had artistic appeal as well, which is always handy
  14. The printer was also able to produce it without a great waste of paper from trimming edges, and could therefore still do it for a good price.
  15. Layout or Content first?
  16. This is a chicken or egg question sometimes, but in this case the content was pretty much decided. After much sketching and reallocating of page space the following was decided upon:
  17. 2 Pages for front and back cover.
  18. 1 page for an advert for the Arts Educational School, Tring
  19. 1 page for contents
  20. 4 pages on Company and Ballet background
  21. 4 pages on the characters in the ballet
  22. 2 centre pages for Carmen photos
  23. 2 Pages for the Synopsis
  24. 4 pages of performers' biographies
  25. 2 pages of pictures from previous productions
  26. 1 page for the Supporters Scheme
  27. 1 page for acknowledgments, advert and the Shoe Fund
  28.  
  29. Typefaces and Point Size
  30. Before implementing this layout, I had to decide upon some other basics: typeface and the base point size. It's difficult to know how much space you're going to need for some text until you actually try to do the layout, so I took the raw text and dropped it into some pages just to see how much it filled up.
  31. Readability is especially important since these brochures would get read in theatre houselights, which are notoriously dim. After examining the array of typefaces I had at my disposal I decided upon Oxford, since its letters have relatively fat strokes giving a bolder look.
  32. The size for the text was set at 10pt but with a 75% horizontal scaling to help get everything in. I kept the default 20% leading. Compared to the previous season's programme this was a slight improvement on readability. I set up the baseline grid to 12pt (10pt typeface size plus the 20% leading).
  33. I chose Europe for headings, but found that at 10pt it took up more vertical space on the line than Oxford. In order to use it next to a 10pt Oxford font I had to reduce its point size to 9.2pt.
  34. The Baseline Grid
  35. On most pages I used the multi-column format to increase readability. It shortens the line length so the reader doesn't loose their place as they scan from the end of one line to the start of the next.
  36. One of the problems of a multi-column format is that the lines of text on one column don't always line up with the lines in the adjacent column, especially if there are headings in the text of a slightly larger size. If the lines in adjacent columns don't line up it looks wrong, or slightly messy.
  37. The baseline grid is invisible in Ovation Pro (up to v2.56 anyway). When a style is locked to it, text in that style is always written along these invisible guides, ensuring that text in adjacent columns line up.
  38. There are other ways of achieving the same effect: if you are extra clever about the point size, leading and paragraph spacing of the styles you are using you can get the text to stay aligned naturally, but this only works if the different text frames are aligned at the top.
  39.  
  40. Laying it out
  41. Most of the text was already written and formed parts of other Ovation Pro documents. To start with I collected the content for each section into a separate document and stripped each of all its Styles and Effects.
  42. First of all, I set out the two synopsis pages. I had a certain concept in mind allowed reading of the scenes and titles without having to read the whole text.
  43. Having done that I started work on the 4 pages of Company and Ballet background. These were taken directly from the Press Release, which was already designed using oval frames around quotes and facts dotted through the text. I kept the same design idea, making all the ovals circular, and I also decided to make the text frame sides curved to follow interesting lines in the photographs next to them.
  44. When I sat back and looked at the two sections I had laid out I realised that they were too different in approach to both go in the same brochure.
  45. Back to square one
  46. I scrapped the synopsis layout and started over, this time using the layout concepts from the adapted press release as a starting point. This may seem like a drastic action and a waste of several hours work, but it was definitely the right thing to do. The circular frames as titles became a strong and simple theme which I used again for the characters section.
  47.  
  48. Fitting more in
  49. Sometimes the text just won't fit the layout, and it has a tendency to get longer as late items are squeezed in.
  50. I've mentioned that I used a 75% horizontal scaling for the text. This is a very effective way of saving space, but it also alters the character of the typeface. Being aware of this I had decided to apply 75% to all the text in the brochure - in this way it would look consistent throughout. 
  51. Negative kerning is another space saver. This is where the gaps between each letter are reduced. I used Full Enhanced Justification for the Brochure's text and this function uses negative kerning to help fit words on a line. It also enlarges the gaps, with positive kerning, to help a few words fill a line. Because the shape of the letters are not changed this effect is less noticeable and therefore more useful for shoe-horning in the last word of a paragraph onto the end of a page.
  52. Reducing the gap between lines, the leading, enables more lines to fit on the page. Excessive use of this can reduce readability. It also has a visual effect - the page looks darker because there is less white space between the lines, which can be offputting. This option is less useful if you're already using the baseline grid. If you want to change the leading of the whole document then you can change the separation of the baseline grid to match, otherwise you'll have to turn the lock to grid option off for the altered text.
  53. I made extensive use of Ovation's frame shaping utilities to make the vertical sides of the frames into curves. These curves could be changed ever so slightly to enable the text to flow to a different length.
  54. Another effect that was useful was the way picture frames repel text. Where a picture straddles two columns a small nudge can improve the flow around it creating space. This is especially true where there happens to be a number of long words next to the frame on one side.
  55.  
  56. House Style
  57. Adonais's house style includes a whole range of idioms like date format, which is always 'Sunday 20th January 2000' and not 'Sunday January 20th 2000'.
  58. Conforming to the house style is a never-ending job. It started at the first hint of layout and was being tinkered with at the last proof reading. 
  59. Other house rules are more like standards of literacy. The types of things that come under this heading are not repeating the same word in a sentence (eg: a descriptive word); ensuring that it's and its are never confused (lots of readers get instantly put off if that happens); and not being ambiguous, especially with objects and subjects of sentences (which is surprisingly easy to do).
  60. Proofreading
  61. It took two weeks to produce the whole programme. One week was spent putting it together, laying it out, fitting it in, padding it out and admiring the emerging document.
  62. The second week was spent taking it apart word by word (literally) to ensure that every piece was accurate and worthy of inclusion. Each turn of phrase was examined for ambiguity and readability, and I doubt that any more than a quarter of the original text was left unaltered after close inspection.
  63. Special attention was given to punctuation. The use of commas is practically a house style, and they are used almost exclusively to mimic where a pause would naturally occur if reading the text aloud.
  64. I hope I have managed to convey the scale of the task of proofreading and editing. The result is very worthwhile - 6 weeks after completion and we have yet to find a single error in the eight and a half thousand words that comprise the brochure's text.
  65. Be warned, it took several different people to spot all of the many errors that were there to begin with. A sole proof reader has a difficult job to compete with two or three people.
  66. Sending it to the printer
  67. I did not have a choice about which printer to use, so going to a RISC OS-aware printer was not an option. Deadlines in the entertainment industry are more fixed than most other situations. The premiere of Carmen was on Friday 11th February 2000, and there had to be brochures on sale at that performance at all costs. The performance was practically sold out before the brochure was even in draft format, every ticket sold being like a contract between one audience member and Adonais. Brochures at the ballet are like carrier bags at computer shows - you just can't survive without them!
  68. I had e-mailed a PostScript file to the printer in advance to see if they could handle it, but no luck there. I've no doubt that if I could have spent a week working on it (or if RiScript had been released a month earlier) I would have been able to supply the printer in electronic form, but I didn't have a week to spare.
  69. The method I used was to print all the text and simple vector graphics (frames and rules) at actual size on a 600dpi laser printer and sent that printout as camera ready artwork. All the  photos and colour effects were then added by the printer.
  70. The finished result, when inspected closely, has the tell-tale feathering and less than perfectly crisp edges to the letters that this process might be expected to produce. However, the tiny degradation in quality was a cost we were prepared to pay in order to ensure that the programme was printed in time. As mentioned above, the deadline was absolute.
  71. For another type of publication a slight slip in the deadline might not matter - magazines sometimes come out late, product publicity can be delayed without serious repercussions.
  72. I know there are many readers saying 'It would have been easy to do it via PostScript', and I'm sure you're right. But that's not the point. The point is it absolutely had to be done on time, and it was.
  73.  
  74. Brian O'Carroll - Adonais Ballet Compan
  75. (http://www.pebblesculpt.co.uk/adonais/)
  76.  
  77.  
  78. ÿÿÿÿVOLUME1/ISSUE2/AWK/INDEX.HTM Volume 1, Issue 2, Great awk: part 2
  79.  
  80.  
  81.  
  82.  
  83. Great awk
  84. Gavin Wraith continues his series on awk.
  85. (If you missed the first part, there's a copy of the Mawk interpreter in the SOFTWARE directory on the CD-ROM.)
  86. Records and Fields: Example 3
  87. In the previous article I said that pattern-action statements
  88. applied to the text line by line and that the variable
  89. $n denoted the n-th word of the current line.
  90. That was a deliberate oversimplification.
  91. Adopting jargon from database tradition, we may say
  92. that every textfile can be thought of as a sequence of
  93. records, separated by a record-separator,
  94. and that each record can be thought of as a sequence of
  95. fields, separated by a field-separator.
  96. Awk has a number of built in variables, among them
  97.         FS
  98.         input field-separator
  99.         RS
  100.         input record-separator
  101.         OFS
  102.         output field-separator
  103.         ORS
  104.         output record-separator
  105.         NF
  106.         number of fields in the current record
  107.         NR
  108.         number of records read so far
  109.         FNR
  110.         number of records read from current input file
  111.         FILENAME
  112.         pathname of current input file
  113. The default value for both RS and ORS is the string '\n' - in other words,
  114. a newline character. This means that by default
  115. record is a line of text. The default value for FS and OFS is ' '
  116. a single blank space. When FS takes this special value, input fields
  117. are separated by blank spaces and/or tabs, and leading blank spaces
  118. and tabs are ignored. So, in effect, fields are words.
  119. The variable OFS determines how the comma symbol is interpreted
  120. between the expressions following print.
  121. The variable ORS determines the string that is output
  122. automatically after a print statement
  123. If RS is set to an empty string '' then input records are
  124. separated by one or more blank lines, and field-separators
  125. are either newlines or values given by FS. So the followin
  126. settings:
  127.     BEGIN { RS = ""; FS = "\n" 
  128.  
  129. would interpret paragraphs as records and individual line
  130. as fields, in a 'standard' text file where paragraph breaks ar
  131. blank lines.
  132.  
  133. Incidentally, as the example aboove shows, the semicolo
  134. can be used to put many statements on the
  135. same line. Unlike C, the semicolon is a statement separator,
  136. not a statement terminator, which is why we don't need on
  137. after FS = "\n". The sample fil
  138. the following two line records:
  139. J D Salinge
  140. The Catcher in the Ry
  141. M Peak
  142. Gormenghas
  143. J Cowper Powy
  144. Wolf Solen
  145. Himsel
  146. Augustus Car
  147.  
  148. By applying them to the Authors file, can you explain the
  149. difference in behaviour between the following awk programs
  150. BEGIN { RS = "
  151.     FS = "\n
  152.     OFS = " wrote 
  153.  
  154. { print 
  155. BEGIN { RS = "
  156.     FS = "\n
  157.     OFS = " was written by 
  158.  
  159. { print $2,$1 
  160. Without those commas, OFS plays no role. print
  161. by itself is equivalent to print $0, which implie
  162. that you have to
  163. write print "" to get a newline on its own. For fancier formatted
  164. output you can use the printf and sprintf functions.
  165. If you are used to C you will have no difficulty with these; if not, there'
  166. not room to describe them here
  167.  
  168. To undo the effect of convert2  try the following awk program
  169.     # rever
  170.     BEGIN { FS = " was written by " 
  171.     { printf("%s\n%s\n\n", $2,$1) 
  172.  
  173. Command Line Arguments and Files
  174. Awk was devised for Unix in the days before Desktop
  175. environments.  Have a look at !mawk.Docs.manpage
  176. for the complete specification of the command line arguments
  177. for the executable file !mawk.bin.mawk. As awk
  178. programs are often so short, awk was written to accept
  179. 'throwaway' programs inside single quotes on the command line to
  180. the awk (in our case mawk) command.
  181. In RISC OS, where path names are limited to 256 characters, thi
  182. is not so convenient. Instead one must use the
  183.     -f <program pathname>
  184.  
  185. option. If you shift-doubleclick on the Obey file
  186. !mawk.Apps.!RunAwk.!Run you wil
  187. see in the last line how this is used when you drag a
  188. textfile onto the !RunAwk icon. The contents of this
  189. file are shown below:
  190. | AW
  191. if "<Awk$Prog>" = "" then echo No awk program chose
  192. if "<Awk$Prog>" = "" then obe
  193. if "%*0" = "" then obe
  194. ?leaf <Awk$Prog>
  195. do taskwindow "mawk -f <Awk$Prog> %*0" -name <leaf>=>%0 -qui
  196.  
  197. There is nothing to stop you using the mawk command with
  198. its full variety of command line options in an Obey file.
  199. Furthermore, you can use the -f <program pathname>
  200. option lots of times in the same command, which is useful
  201. for loading in libraries of function definitions.
  202. For instance, you could use the following:
  203. mawk -f <prog_1> ... -f <prog_m>  <file_1> ... <file_n>
  204. A word about the sequence in which things happe
  205. needs to be said here. The program does not run until
  206. all m program files have been read in. Then all the function
  207. definitions found in them are compiled, the built in variable
  208. ARGC is given the value n and the built in array ARGV is
  209. initialized so that ARGV[i] has the value
  210. <file_i>. Then all the BEGIN actions
  211. are grouped together and executed. Then the input files are
  212. read in, in sequence, and finally the END actions are
  213. grouped together and executed.
  214. There is a useful trick for passing in values. The command
  215. line arguments do not have to be the pathnames of input files.
  216. For example, suppose you wanted <file_k> to specify
  217. an output file. Then you would include in one of the programs a
  218. line of the for
  219. BEGIN { out = ARGV[k] ; ARGV[k] = "" 
  220.  
  221. Setting the k-th element of ARGV to a null string will suppress
  222. input of the k-th command line argument. The variable out
  223. can then be used for output statements. This technique will be
  224. demonstrated in the next example.
  225. Invoicing customers: Example 4
  226. Suppose you are the milkman. You want to add up the amount due
  227. from customers and send out bills to them. The directory
  228. Invoices holds a collection of files, how many and
  229. what they are called is irrelevant, in each of which a record
  230. is kept of milk deliveries, each record having the form
  231. <customer> <amount>
  232. Double-click on the Obey file Bill to create a directory of
  233. bills to send out to customers
  234. Shift-double-clicking on Bill will reveal its contents
  235. | Bill customer
  236. dir <Obey$Dir>
  237. enumdir Invoices invlis
  238. cdir Letter
  239. mawk -f Total invlist Invoices Letter
  240. delete invlis
  241. The fifth line makes the awk program Total act on
  242. the temporary file invlist, and passes the the input and
  243. output directory names as ARGV[2] and ARGV[3]. 
  244. Shift-double-clicking on Total will reveal
  245.      # Total up invoice
  246.      BEGIN { invoicesdirectory = ARGV[2
  247.              outdir = ARGV[3
  248.              ARGV[2] = ARGV[3]  = "" # remove arg
  249.              sep = "." } # directory separator symbol
  250.     NF { list[$1] = "" } # read what invoice files there ar
  251.     END { for (file in list
  252.             invoice(invoicesdirectory sep file, account
  253.           for (customer in account
  254.             if ((owing = account[customer])) # no bill if zer
  255.               letter(outdir sep customer,customer,owing) 
  256.     function invoice(f,a) 
  257.       while ((getline < f) > 0
  258.         a[$1] = $
  259.       close(f) 
  260.     function letter(out,customer,amount) 
  261.         print "Milk Bill for",sysvar("Sys$Date") > ou
  262.         print "Dear",customer > ou
  263.         print "You owe", amount, "pence." > ou
  264.         print "Thank you." > ou
  265.         close(out) 
  266. One or two points need comment
  267. In line 4, ARGV[2] = ARGV[3] = "" works because i
  268.   awk - as in C - assignment statements return values
  269. The pattern NF in line 6 holds precisely for nonempty lines. The array list is indexed by the leaf names of files in Invoices and has uninteresting values
  270. In lines  8 and 11 concatenation of strings is used, by simply
  271. separating string expressions by blank spaces
  272. Note how we assign the value of account[customer]
  273.  to the variable owing inside a condition This is a
  274. typical C turn of phrase which avoids recomputing the
  275. value.  The '=' here is not a comparison (which would be '==') bu
  276.  an assignment, and the test is effectively whether or no
  277. account[customer] is zero
  278. In the definition of the function invoice() w
  279.  repeatedly read in a line of text from
  280. the file f using the getline < operator and we
  281. create the account[] array by passing it as a parameter to the
  282. function
  283. In the definition of the function letter() we see
  284. the print statement redirected to the file signified by the variable out.
  285.  
  286. You can execute RISC OS commands from within an awk program
  287. using the standard built in function system(), which is analogous
  288. to Basic's OSCLI. The function sysvar() is  not standard
  289. it is an extension specially for RISC OS. It takes a string denoting a system variable as
  290. argument and returns its value. See the file !mawk.Docs.Riscos
  291. for a quick summary of these extensions.
  292. This milk account example is, of course, just a skeleton. There are a
  293. great many aspects of the model that we have left out or simplified.
  294. Nevertheless, I hope you can see that by using Obey files and awk
  295. programs together you can achieve a great deal with very few lines of code
  296. Summary
  297. In this article we have seen that awk parses text as a
  298. sequence of records, made up of a sequence of fields.
  299. Combining awk programs with Obey files lets us construct
  300. more involved applications that use the full range of the command
  301. line, whereas the click and drag approach given in the first article
  302. merely restricts awk programs to the role of text filters.
  303. In later articles we will look more closely at patterns and consider
  304. how to use other applications to display output in tables or graphs.
  305. Gavin Wraith (
  306.  
  307.  
  308. ÿÿÿÿVOLUME1/ISSUE2/BEGINPRG/INDEX.HTM Volume 1, Issue 2, Programming for non-programmers
  309.  
  310.  
  311.  
  312.  
  313. Programming for non-programmers
  314. Part 2 - Variables
  315. In the previous part I described the use of variables to hold data, but the subject was only touched upon at a
  316. very superficial level. Because variables are such an important part of programming I shall take time now to
  317. describe the different types and how they are used in more detail.
  318. There are three main type of variable, which are:
  319. Real
  320. Integer
  321. String
  322.  
  323. The first two, Real and Integer, are used to hold numbers. An alternative name for a Real variable is
  324. Floating Point, and this gives a clue to the difference between them. A Real variable can hold a number
  325. which has a decimal component, like 2.475. An Integer can only hold whole numbers. If you try to store a
  326. number with a decimal part in an Integer variable then the decimal part will be lost. So, if you try to store
  327. 2.475 in an Integer variable it will be truncated to 2.
  328. If Integers can only hold whole numbers and Reals can hold either whole numbers of decimals why bother
  329. with Integers in Basic? The reasons are speed and accuracy. Computers don't naturally understand decimal
  330. fractions, they work only in whole numbers. Quite a bit of 'massaging' has to be done to make them use
  331. those strange, human, decimal numbers, so Integers are very much faster. They can also be more accurate as
  332. nothing is lost in 'translating' them into a form that the computer can understand, as we shall see later.
  333. It is therefore good programming technique to use Integer variables wherever possible. In fact, experienced
  334. programmers use Integers almost exclusively, even when dealing with obvious decimal data like cash.
  335. So, how do we differentiate between Real and Integer variables? In BBC Basic it's very simple. You just
  336. add a '%' percentage sign to the end of the variable name.
  337. To clarify: adding a % to the end of an existing Real variable name doesn't change it into an Integer, and
  338. leaving the % off the end of an Integer doesn't change it into a Real. The % (or lack of it) is part of the
  339. variable name. When it is created basic will allocate the type of storage required for an Integer if it has a %
  340. on the end of the name and the space required for a Real if it doesn't. So:
  341. number
  342. number%
  343.  
  344. are two different variables.
  345. So that you understand the difference use Edit to create the following short program. The example
  346. programs have been included on the disc (in the you will continue to gain experience with creating and debugging programs.
  347.     REM  Illustrate difference between Real and Intege
  348.     integer% = 1.8 + 2.
  349.     real = 1.8 + 2.
  350.     PRINT integer
  351.     PRINT rea
  352.     EN
  353.  
  354. You should be able to predict what will happen when you Run this program. The Integer variable 'rounds
  355. down' the number but the Real stores it in full.
  356. By now you should also have realised that we used only Real variables in the VAT calculator program
  357. described in the last part, and the reason why.
  358. Everybody needs string
  359. The third type of variable is the String. This is nothing to do with the stuff used t
  360.  tie up packages, it means 'a string of characters', and it is a way of storing text.
  361. In BBC Basic the maximum permitted length of a string is 255 characters. A string variable is defined and
  362. recognised by having a '$' (dollar) terminating character. Strings are always enclosed in double quotes when
  363. assigned. For example:
  364.     name$ = "Fred Smith
  365.     PRINT name
  366.  
  367. At this point it is worth spending a little more time to make sure you appreciate the difference between the
  368. Real and Integer numerical variables and the string variable. Some people have trouble with this. The
  369. former are numbers. They can be added together, subtracted, multiplied, in fact, have all sorts of
  370. mathematical functions applied to them. The latter are words or letters. For example:
  371.     first% = 4
  372.     second% = 6
  373.     PRINT first% + second
  374.  
  375. would produce the result '106', but:
  376.     first$ = "42
  377.     second$ = "64
  378.     PRINT first$ + second
  379.  
  380. would produce the result '4264'.
  381. In the first case the two numbers 4 and 6 are added together, in the second case the two 'words' 42 and 64
  382. are added together. In fact, this 'adding together' of strings is more properly called concatenation. They're
  383. joined together, not added together, the '+' sign is just a convenient symbol to use for the action.
  384. In some variants of Basic where the distinction between numerical and string variables is not so clearly
  385. defined in their names it is possible for inexperienced programmers to get thoroughly confused. For
  386. example, with some types of basic which don't use the '$'  you could use:
  387.     first = "42
  388.  
  389. When you do this these versions of  Basic would automatically make 'first' a string variable, but from then
  390. on you would have to remember that it was a string variable, it wouldn't be obvious from the variable name.
  391. With BBC Basic the '$' suffix always makes the distinction clear, and if you try to assign the wrong sort of
  392. data to a variable a 'Type mismatch' error will be produced.
  393. Expressions and string/number conversion
  394. It is part of the 'job description' of Basic that wherever you can use a variable or a constant, you can use an
  395. expression. I have mentioned expressions before, and used them in earlier programs, but it's worth repeating
  396. what they actually are.
  397. An expression is anything which can be evaluated when the program is run. For example:
  398.     first% = 4 + 
  399.  
  400. Here '4 + 5' is an expression. When the program is Run the expression '4 + 5' is evaluated and the result (9)
  401. is assigned to the variable first%. There's nothing new in this, we've done it before, but from now on
  402. things might get a little more complicated and it's a lot easier to understand what's happening with this
  403. simple example, though the principle always remains the same.
  404. Although in BBC Basic there are only the three main types of variable mentioned to consider, different 
  405. languages and variants of Basic may have others. For example, in BBC Basic an integer can be a positive or
  406. negative number, with a range of from -2,147,483,648 to +2,147,483,647 (don't worry about why these
  407. particular values, we'll get to that later in the series). A cardinal is a type of integer that can be only positive, and so it
  408. can hold a bigger number.
  409. Whatever form the variable takes, it will inevitably fall into one of two groups, it
  410. will be a numerical variable or a string variable, and all languages will need some way to convert between
  411. the two. We've already been doing this, or rather, allowing Basic to do it in the background. Every time a
  412. program gets input from the keyboard we type a series of character, and Basic converts these (assuming they
  413. are numerical characters) into a number. When the program needs to display the answer to a calculation it
  414. must convert the number to a string of characters and display them.
  415. The routines for doing this are called functions. Functions are pieces of code which performs certain actions
  416. or calculations and 'return' a result. They may be pieces of code you write in your program to perform a
  417. specific task or 'built in' to the language. In BBC Basic we can use a function rather like an expression:
  418.     variable = functio
  419.  
  420. What this does is call the function and assign the value returned by it to the variable. 'Call' is the term  used
  421. when a program leaves the main 'flow' of the program code and branches off to a sub-section, returning to
  422. the same place in the main part of the program afterwards. Functions may have parameters passed to them
  423. when they are called. Where a function is performing a conversion or calculation this will usually be
  424. necessary as we are going to have to give the function the data we want it to use. In fact, a function is a sort
  425. of miniature program itself, and should ideally be designed to be almost completely self contained.
  426.  
  427. The two functions incorporated into Basic which perform conversions between numbers and numeric
  428. strings are VAL and STR$. VAL converts a number into a
  429. string, and STR$ converts a string into a number.
  430. Note that, as with Basic keywords, the names of these functions are in upper case. When you write your
  431. own functions you can give them lower case names, just as with variables. The parameters passed to these
  432. functions, as with all other functions, are enclosed in brackets after the name. For example:
  433.     number = VAL("142"
  434.  
  435. will assign the value 142 to the variable number
  436. In a case like this, of course, it would be easier to just
  437. use:
  438.     number = 14
  439.  
  440. but things aren't always that simple.
  441. STR$ works the other way, for example:
  442.     number$ = STR$(142
  443.  
  444. You've probably already noticed it yourself, but the parameter passed to VAL is a string, so if it's a literal
  445. string, as in the example, it's enclosed in double quotes. The parameter passed to STR$ is a number, so it
  446. isn't.
  447. One final point. As with almost everything else in Basic you can pass expressions to functions. For example:
  448.     number$ = STR$(64+32
  449.  
  450. would make number$ equal to the sum of 64 and 32, or "96".
  451. Basic and line numbers
  452. This might seem like a drastic change of subject, but bear with me, there's a reason for introducing it here
  453. When you write a Basic program, every line is given a sequential number. This is used by Basic to keep
  454. track of program execution, but, most of the time, it doesn't matter to you and you don't need to know what
  455. these numbers are.
  456. Look at the icon bar menu in Edit and follow 'BASIC options' and you will see that the first item on the
  457. sub-menu is 'Strip line numbers'. By default this is 'ticked'. Click on this so it is no longer ticked and load a
  458. Basic program into Edit. You will see that each line begins with a number. Depending upon what editor 
  459. was used to write the program these will either be sequential numbers, or in increments of 10. Now you've
  460. seen them you can reset Edit to strip the line numbers. As a programmer they are of no interest to you
  461. except for one special purpose.
  462. The reason you need to know about line numbers is because sometimes things go wrong. If you have typed
  463. in the programs described in the first article you may already have experienced this when you tried to run
  464. them. The error messages probably weren't very helpful because you didn't know where to look for the
  465. problem. So far the programs have been fairly short, but as they get bigger you will need a way to find out
  466. not only what the problem is, but where to look for it.
  467. Statement delimiters
  468. So far all the examples I've given have had one Basic statement or instruction on a line. It is possible to put
  469. more than one statement on a line, but you can't just join them up, one after the other. Just as in a written
  470. language we use a full stop to indicate the end of one sentence and the start of another, so in Basic we use
  471. the ':' (colon) character to indicate the end of one statement and the beginning of another. For example:
  472.     first% = 2
  473.     second% = 5
  474.  
  475. could be written as:
  476.     first% = 24 : second% = 5
  477.  
  478. As usual, the extra spaces are merely for clarity and are not necessary.
  479. You can put several statements on a single line like this, although there are some potential problems that
  480. we'll deal with later.
  481. Error trapping
  482. BBC Basic has its own 'default' error handling routine, which you've probably already seen. If something
  483. is wrong you'll get a message like Mistake or Missing "" and the program will just quit. However, you
  484. don't have to put up with this minimal information. It is possible to 'trap' errors, and make Basic go to your
  485. own error handling routine where you can deal with the error.
  486. Later we will use this to do things like stopping a program from crashing because you've just tried to save
  487. hours of work to a disc which doesn't have enough room, but for the moment its main use is going to be to
  488. tell us where in our program code the error has occurred so that the inevitable typing mistakes can be easily
  489. found and corrected. Which, of course, is why I'm introducing the subject now before you get fed up trying
  490. to find out where those 'Mistakes' actually are.
  491. When an error occurs Basic stores the error message, the error number, and the program line where the error
  492. occurred respectively in three special variables REPORT$, ERR and ERL. The error number is an
  493. individual number assigned to every possible error and is mainly used to trap specific errors. We can't alter
  494. or assign values to these variable, but we can 'read' them and so find out what's gone wrong.
  495.  
  496. The way we 'trap' an error is to use insert a line:
  497.     ON ERROR <do something>
  498.  
  499. where <do something> is whatever we want the program to do when it finds an error.
  500. The ON ERROR isn't used in the context of switching something on, but could be interpreted as 'when you
  501. encounter an error come here'. The code on the line after the ON ERROR statement is then executed
  502. We can use this, together with what you have already learned, to create a simple 'error handler' that can be
  503. used to help locate and report typing mistakes in our programs. Near the start of the program include the
  504. line:
  505.     ON ERROR PRINT REPORT$ + " at line " + STR$(ERL) : EN
  506.  
  507. This looks a bit more complicated than some of the things described so far, but there's nothing new here
  508. The first part is the ON ERROR statement which tells Basic to come to this line if it discovers an error.
  509. Next there is the keyword PRINT, so you will know that what follows has to be something that can evaluate
  510. to text so that it can be displayed on screen.
  511. This is actually three separate items, using the '+' symbol to join them up into a single string The first is
  512. REPORT$, and this will be the error message from Basic. The next is just a literal string, " at line ". This
  513. leads to the third item, which takes the Basic variable ERL which tells us where the error occurred and
  514. converts it to a numerical string. So, the line which appears on the screen will be in the form:
  515.     <error message> at line <line number>
  516.  
  517. After this there is a statement delimiter, which signals the end of the PRINT statement. Then comes the
  518. keyword END which will terminate the program. You might not always want the program to terminate when
  519. an error occurs, but here we are mainly concerned with trapping typing errors in the program, so there's no
  520. point in trying to continue. If the keyword END was not added to the end of the line the program would
  521. carry on with the next line and run into the same error all over again.
  522. So how does it work in practice
  523. Enter the following program:
  524.     REM Test error handle
  525.     first% = 2
  526.     second% = 4
  527.     sum% = first% + second
  528.     PRINT sum
  529.     EN
  530. This is pretty simple stuff. It just assigns numbers to two variables, adds them together and puts the sum in a
  531. third variable, then prints the result. But what would happen if we had made an error typing the word
  532. second% in the 4th line and written:
  533.     REM Test error handle
  534.     first% = 2
  535.     second% = 4
  536.     sum% = first% + seconf
  537.     PRINT sum
  538.     EN
  539. There obviously won't work, but without error trapping there will just be a message 'Unknown or missing
  540. variable' which won't help us to track down where the mistake is.
  541. So, let us introduce our own error trap and see if it's any better.
  542.     REM Test error handle
  543.     ON ERROR PRINT REPORT$ + " at line " + STR$(ERL) : EN
  544.     first% = 2
  545.     second% = 4
  546.     sum% = first% + seconf
  547.     PRINT sum
  548.     EN
  549. Note that the error handler must be near the start of the program. If not, Basic won't 'know' about it and will
  550. just use the default error handler
  551. Now run the program again and you should see:
  552.  
  553. This is an improvement because it gives us the line where the error occurred, but there's one small
  554. difficulty, it tell us the error was in line 50 and the program only has seven lines!
  555. The reason for this is that I used Edit to write the program, and by default Edit
  556.  numbers Basic lines in
  557. increments of 10. If you used something else to write your program where line numbers were incremented
  558. in 1's you might have been told that the error occurred at line 5. This isn't much of a problem, because you
  559. can just divide the line number by 10 and use the 'Goto line' function of the text edito
  560.  (in Edit press F5).
  561. The CASE structure
  562. In the first part of this series I described the use of the IF ... THEN ... ELSE structure to enable a program to
  563. choose between different actions. This structure is fine when there are only one or two possible options, but
  564. it could get extremely complicated if there are several. A much more elegant system is the CASE structure.
  565. This can have a very large number of options, but only one of them will be selected and acted upon. It looks
  566. like this:
  567.     CASE <variable> O
  568.     WHEN <something> : <do this>
  569.     WHEN <something> : <do this>
  570.     WHEN >something> : <do this>
  571.     ENDCAS
  572.  
  573. In addition there's another option, OTHERWISE, which will be used if none of the others fit, but this is
  574. optional. So the complete structure becomes:
  575.     CASE <variable> O
  576.     WHEN <something> : <do this>
  577.     WHEN <something> : <do this>
  578.     WHEN >something> : <do this>
  579.     OTHERWISE : <do this>
  580.     ENDCAS
  581. If you do not include the OTHERWISE option then, if the conditions don't match any of the other options,
  582. nothing will happen.
  583. It is important to note that there must be absolutely nothing on the first line after the word 'OF'. Even a
  584. single space, which might pass unnoticed in your editor, will stop the structure from working correctly
  585. The <variable< in the first line can be any type of variable, string or numeric, or even an expression. After
  586. each WHEN keyword a value will be written, and this must be of the same type as the variable. The value
  587. can be a literal value, or another variable. If the variable on the first line is equal to one of the values after
  588. a WHEN then the code on the following line or lines up to the next WHEN (or OTHERWISE or
  589. ENDCASE) is executed.
  590. As soon as a match is found all the other options are ignored, so if <variable> happens to match more than
  591. one option, only the first one found will count.
  592. This is a very powerful structure, and is the essential programming tool for multiple-choice selection, so it's
  593. worth spending a little more time on it. Type in the following program, and see if you can work out exactly
  594. what it's going to do before you try it, and, more important, how it does it.
  595.     REM Demonstrate CASE structur
  596.     ON ERROR PRINT REPORT$ + " at line " + STR$(ERL) : EN
  597.     INPUT "Enter a number " number
  598.     CASE number% O
  599.     WHEN 1 : PRINT "You entered ONE
  600.     WHEN 2 : PRINT "You entered TWO
  601.     WHEN 3 : PRINT "You entered THREE
  602.     WHEN 4 : PRINT "You entered FOUR
  603.     WHEN 5 : PRINT "You entered FIVE
  604.     WHEN 6 : PRINT "You entered SIX
  605.     WHEN 7 : PRINT "You entered SEVEN
  606.     WHEN 8 : PRINT "You entered EIGHT
  607.     WHEN 9 : PRINT "You entered NINE
  608.     OTHERWISE : PRINT "I don't understand " + STR$(number%
  609.     ENDCAS
  610.     EN
  611.  
  612. You will notice that I've included the error handler line at the start of the program
  613. We can now go back and have another look at the VAT calculator and see if we can improve it. The final
  614. program was:
  615.     REM  Program to add or subtract VAT from a pric
  616.     PRINT "Do you want to -
  617.     PRINT " 1. Add VAT to the net price
  618.     PRINT " 2. Calculate net price from VAT inclusive price
  619.     REPEA
  620.     INPUT "Please enter 1 or 2 " choic
  621.     UNTIL choice = 1 OR choice = 
  622.     INPUT "Enter price " pric
  623.     IF choice=1 THEN result = price * 1.175 ELSE result = price / 1.17
  624.     PRINT resul
  625.     EN
  626.  
  627. As this uses a menu selection it could be made more elegant with a CASE structure, and we could also add
  628. an option to quit the program.
  629.     REM  Program to add or subtract VAT from a pric
  630.     ON ERROR PRINT REPORT$ + " at line " + STR$(ERL) : EN
  631.     REPEA
  632.     PRIN
  633.     PRINT "Do you want to -
  634.     PRINT " 1. Add VAT to the net price
  635.     PRINT " 2. Calculate net price from VAT inclusive price
  636.     PRINT " 3. Exit the program
  637.     INPUT "Please choose " choice
  638.     CASE choice% O
  639.       WHEN 1 : INPUT "Enter price " pric
  640.                result = price * 1.17
  641.                PRINT "Price with VAT is " resul
  642.       WHEN 2 : INPUT "Enter price " pric
  643.                result = price / 1.17
  644.                PRINT "Price without VAT is " resul
  645.       WHEN 3 : EN
  646.       OTHERWISE : PRINT "You must enter 1, 2 or 3
  647.     ENDCAS
  648.     UNTIL choice% = 
  649.     EN
  650.  
  651. Don't worry about the indented lines. The extra spaces are ignored when the program is Run, but they help
  652. to make it easier to 'read' and see how the various options operate.
  653.  
  654. The new program takes what you learned in the first part and adds some of the new things from this session.
  655. Firstly there's the error handler. This will be included in all programs from now on because as they are
  656. getting more complicated typing mistakes are bound to occur. Next the menu now has three items. You can
  657. choose between adding or subtracting VAT or quitting the program. Placing the main section of the program
  658. inside a REPEAT ... UNTIL loop means it will continue to operate until you decide to quit.
  659. The OTHERWISE option in the CASE structure will just prompt the user to enter the correct number if
  660. something other than 1, 2 or 3 is entered.
  661. In the next instalment we'll make a few more improvements to the VAT calculator program and I'll describe
  662. another family of variables, the array.
  663. David Holden
  664.  
  665.  
  666. ÿÿÿÿVOLUME1/ISSUE2/CASTLE/INDEX.HTM Volume 1, Issue 2, Interview: Castle Technology
  667.  
  668.  
  669.  
  670.  
  671. Castle Technology
  672. Alasdair Bailey finds out what's afoot up at the Castle.
  673. (Note - click on the images to see a (much) larger version. Adjust-clic
  674. on the Acorn to load into a new window.)
  675.  
  676. Castle Technology is based in the small Suffolk
  677. town of Framlingham about thirty miles north of Ipswich. 
  678. Headed by Jack Lillingston and John Ballance, Castle
  679. has been an important force in the Acorn market for
  680. quite some time now.  The company takes its name from
  681. the village's medieval castle, built in the 13th century by
  682. Hugh Bigod.
  683. Following recent expansions, the company now occupies two
  684. large industrial units and, unlike many computer companies,
  685. its premises are nicely decorated and tidy. 
  686. This speaks volumes for the company and its management
  687. nobody likes to give money to a disorganised-looking outfit.
  688. A quick look around the office reveals only one lone
  689. PC amongst a sea of Acorn machines.  As with many
  690. Acorn-dedicated companies, this lone PC is used solely
  691. for accounts because of difficulties in findin
  692. accountants able or willing to use the RISC OS alternative. 
  693. Castle is keen to stress that it is a completely
  694. RISC OS dedicated company; having briefly ventured
  695. into the PC hardware market in the early 90s, it found
  696. the technical support necessary to be too time-consuming so soon gave up.
  697. A bit of history
  698. Traditionally, Castle has been renowned for its
  699. SCSI and IDE interface products. Its colour adverts in
  700. the Acorn press full of tantalisingly large hard drives and
  701. high-res scanners are now the first port of call for many
  702. thinking of upgrading. It's worth pointing out that these
  703. products are still being fully supported even in the midst
  704. of all this hardware manufacture.
  705. In the past, the company has taken some considerabl
  706. risks yet still turned a good profit.  One notable
  707. example of this was when it bravely brought two
  708. lorry-loads of German A3000s back to the UK.  These
  709. machines that the rest of the world had forgotten were
  710. promptly refurbished to UK spec and sold on at a
  711. suitable mark-up.
  712.  
  713. As a company with a  history of buying up Acorn's
  714. discontinued stock and selling it on, it was only natural
  715. that following October 1998's announcement, Castle
  716. should work to continue the supply.  The production side
  717. of the business has now been going for just over a year. 
  718. Motherboards and cases are commissioned for
  719. manufacture elsewhere in large numbers and shipped to
  720. Castle for assembly.
  721. The current range
  722. At the time of writing, demand for both Risc PCs and
  723. A7000+ machines is far outstripping supply.  Castle is
  724. currently about three weeks behind on orders; by the
  725. time you read this the company should be back on track.  This is
  726. a very positive sign given that many thought the market
  727. as it is now wouldn't see out '99.
  728. Castle is currently doing a good job of marketing
  729. and selling under the Acorn brand. Its base model -
  730. the A7000 Odyssey - is basically an A7000+ as was
  731. produced by Acorn but with marginally improved perfo
  732. mance and Castle's own software bundle.  The
  733. company's Risc PC range also benefits from new hardwar
  734. developments with all models now including the
  735. new revision 'T' StrongARM processor with its improved
  736. task-swapping capabilities.
  737.  
  738. Assembly of new machines takes place in a downstair
  739. room in the main building. Case mouldings, PCBs
  740. and other components are purchased in bulk and stored
  741. in the warehousing unit across the way. At all stages in
  742. production, Castle strives to maintain the high standard of
  743. quality and reliability that was championed by Acorn. All
  744. computers are tested, tested some more then tested
  745. again with a long spell on the soak rack somewhere in
  746. between.
  747. Castle operates a strict stock control system across
  748. the site using a network of RISC OS machines to
  749. maintain a database of exactly what's in stock and
  750. where it is.  Practices such as these are essential now
  751. that machines are being assembled on site; staff could
  752. be left drinking coffee all afternoon if stocks of processor
  753. unexpetantly ran dry at lunchtime.
  754. Advancing the standard
  755. Not wanting to rest on its laurels, Castle i
  756. constantly improving its range of Acorn-branded systems. 
  757. The high-end Risc PC models now ship with DVD drives
  758. although no drivers for the DVD facility are included. 
  759. When questioned about this inconsistency, Jack commented
  760. "It's always a chicken and egg situation. There
  761. was an opportunity to put DVD drives in and use them
  762. as a CD reader which is what we've chosen to do."  He
  763. then continued to explain how hopefully, the presence of
  764. plenty of DVD drives in the market will promote the
  765. development of drivers for data DVD discs and perhaps
  766. even MPEG hardware for playing movies from the
  767. comfort of RISC OS.
  768.  
  769. Castle's machines now all ship with RISC OS 4 as
  770. standard.  It is good to see that Castle is supporting
  771. RISCOS Ltd. in this respect after they stood accused of
  772. going it alone in the days of the Steering group which
  773. took care of negotiations after Acorn's withdrawal from
  774. the market.
  775. It's plain to see that once the sales of RiscPCs and
  776. A7000s start to fall, Castle, as a commercial enterprise
  777. will need a new product to stay alive.  What form this
  778. new product will take is still a mystery but given the
  779. company's good relations with what was once Acorn,
  780. some are suggesting that a re-awakening of the Phoebe
  781. Risc PC II project may be on the cards.
  782. Black Thursday
  783. Understandably, Castle is remaining tight-lipped on
  784. this subject.  Any talk of new hardware will dent sales of
  785. current models. Jack points out that Acorn sold only
  786. minimal numbers of Risc PCs and A7000s once the
  787. Phoebe project was widely publicised. This could well
  788. have been one of the major contributing factors to the
  789. axeing of the project. Those in charge at Acorn would
  790. have gained an unduly bleak picture of the state of the
  791. desktop market by looking at sales figures for the two
  792. years leading up to the demise of the workstations
  793. division.
  794. When quizzed on whether he'd seen the events of
  795. 'Black Thursday' coming, Jack replied simply: "It came
  796. as a hell of a surprise and a total shock".  However, in
  797. common with some others in the market, he had been
  798. left slightly nervous after a meeting for dealers 
  799. fortnight prior to the event.  At this meeting, Jack recounts
  800. how a last ditch effort was made to raise funds for the
  801. project.
  802. Following Acorn's move to abandon its traditional
  803. desktop market, Castle did not join the numerous other
  804. dealers and developers who took part in the so-called
  805. Steering group negotiations.  Instead, as mentioned
  806. earlier, they negotiated their own deal to continue the
  807. supply of existing models.  At the time, many condemne
  808. Castle for acting in this way.  Looking back,
  809. with the gift of retrospect, it's a good job they did.  Had
  810. the steady supply of Acorn branded machines not been
  811. maintained over the 14 months between Acorn leaving
  812. and the RiscStation coming on stream, many would
  813. have deserted the market.
  814. Jack sees the existence of companies producing their
  815. own RISC OS hardware as a good thing on the whole. 
  816. That said, he is quick to point out that Castle's Acorn
  817. developed range still has its benefits: "you've got a wide
  818. range of hardware add-ons that are already up and
  819. running and widely available, all the software is 100%
  820. compatible because that's what it was designed to run
  821. on and the hardware is supported throughout the
  822. industry.".  Healthy competition between the companies
  823. should keep all parties on their toes which is always a
  824. good thing.
  825. A new browser
  826. One area of the RISC OS market where competition
  827. has never really been an issue and development has
  828. only occurred when it's been profitable is the WWW
  829. browser niche.  Castle intends (finally) to give users a good
  830. browser which will grant them access to more of the
  831. Internet than ever before. Its new browser, Oregano,
  832. looks set to become a major player in the market with
  833. proper support for JavaScript and FTP amongst other
  834. things.  Currently, Webster is the only fully supported
  835. browser on the market.  Although it has a good grasp of
  836. JavaScript, it is fundamentally slow.  Its faster counterpart
  837. Fresco, is a very good browser but is sadly no
  838. longer being updated at a rate which is acceptable to
  839. most users.
  840. This is where Oregano comes in.  As a desktop
  841. version of an NC OS browser developed by Oregan
  842. Networks, it uses very little memory, is quick to render
  843. pages and most importantly, will be maintained into the
  844. future.  The browser has been developed by Oregan for
  845. a Korean customer and following a deal with Castle, it is
  846. now being taken across to RISC OS.  Most of the work
  847. is going into making the browser more desktop-friendly
  848. so, for example, it has been modified to use more than
  849. one window and display an icon bar icon.
  850.  
  851. As can be seen from the screen grabs, Oregano is a
  852. nicely-presented application with a somewhat unique
  853. window layout.  At the time of writing, the interface is still
  854. very NC-oriented so takes a bit of getting used to. This
  855. should be sorted out by release though.
  856. Castle's primary reason for developing Oregano is to
  857. provide it with a browser to be included with new
  858. machines. "I think everybody these days expects to
  859. have a good browser that's supported" commented
  860. Jack.  His sentiments will be shared by many others in
  861. the market we suspect.
  862. It's good to see a company which is willing to promote
  863. software growth as well as its main line of business in
  864. the hardware sector. Castle also works closely with
  865. RISCOS Ltd. and seems keen to make sure its users
  866. have a decent range of applications to run on their
  867. machines rather than being left with a nice operating
  868. system on stable hardware and not a lot else.
  869. One interesting fact gleaned during the interview was
  870. that sales of machines are split roughly by thirds. 
  871. Currently, one third of Castle's orders are from education
  872. a third from home users and the rest from OEM
  873. customers.  It's interesting to see that the OEM market
  874. (people such as SiPlan and Millipede) wich was largely
  875. ignored by Acorn in favour of eductaion now represents
  876. a third of all sales of its machines.
  877. Jack has a clear view of what needs to be done in the
  878. future: "I think the important thing is to maintain the
  879. reliability which is our number one selling point: we must
  880. be very careful that nothing moves us away from that." 
  881. Let's hope that Castle can continue to set the standard
  882. for reliability into the future.
  883.  
  884. Alasdair Bailey
  885.  
  886.  
  887. ÿÿÿÿVOLUME1/ISSUE2/DISC/INDEX.HTM Volume 1, Issue 2, Disc World
  888.  
  889.  
  890.  
  891.  
  892. Disc World
  893. What's also on this CD-ROM?
  894. This CD-ROM contains a number of utilities and pieces of software to accompany the articles in the magazine.
  895. Utilities
  896. There are three utilities to help you read this disc (RISC OS users only):
  897.         A file-only copy of Fresco, to display the HTML. This will only run if you don't already have a copy of Fresco installed, so that it won't overwrite your cache
  898.         SparkPlug, which can be used to read the archived software on the disc
  899.         ArcFS, which can be used to read some of the archived software on the disc
  900.  
  901. Usenet archive
  902. Also included on the disc in the USENET directory is an archive of the comp.sys.acorn.* newsgroups. These are stored in a special read-only version of Messenger Pro which will allow you to view the messages, but nothing more complicated. The archive is presented 'as is', and RISC World doesn't make any guarantee about the usefulness, relevance or acceptability of any information contained in it.
  903. Other software
  904. Several of the articles in the magazine have accompanying software - see the following for details:
  905.  
  906.  
  907.  
  908. ÿÿÿÿVOLUME1/ISSUE2/DOCCD/INDEX.HTM Volume 1, Issue 2, RISC OS PRMs on CD
  909.  
  910.  
  911.  
  912.  
  913. RISC OS PRMs on CD
  914. The Programmers' Reference Manuals are once again available on CD. Mark Smith sees whether any lessons have been learned from the last attempt.
  915. Call me old fashioned, but I've always preferred paper manuals to disc-based documentation. Why? Well, when your screen is full of editor windows that you're using to design your work of art, compose your prose or code your masterpiece, surely the last thing you want to do is plonk your software or technical documentation in a window on top of what you're trying to work on
  916. However, that said, documentation held in an electronic form has certain advantages over the paper variety, or at least it does in the majority of cases
  917. Search facilities may help to locate what you're looking for faster
  918. Hot links allow you to locate related information easily, without having to look it up in the index
  919. You don't have to worry about keeping it open at the required page, especially if you're looking at several simultaneously
  920. You don't have to clear a space on your desk to put it down
  921. It's usually cheaper to buy, and certainly cheaper to mass produce
  922. It saves space - a book shelf full of manuals can quite easily be held on a single CD
  923.  
  924. New CDs for old
  925. Documentation on a CD is nothing new in the RISC OS world. After all, the 'Tekkie Disc' from Emerald Publishing has been around for a good few years and that has the RISC OS 3 PRMs on it, together with manuals for DDE, Desktop C, Assembler and BBC BASIC
  926. So what about the new RISC OS PRM CD from RISC OS Ltd.? What does it provide that we don't already have
  927. Well, the first point is that there is a wider selection of manuals. Not only do you get volumes 1 to 4 of the PRMs, but you also get volume 5a which covers the differences in RISC OS v3.5 and 3.6 against v3.1. You also get the User Guide, Timecode, Internet & Omniclient manuals as well as manuals that accompany Desktop C/C++ rather than the Desktop C release 4 ones supplied with the original Tekkie Disc
  928. The next major improvement is the format in which the files are held. Whereas the Tekkie Disc uses a proprietary file format and librarian to view them (which isn't even StrongARM-compatible on the version that I have), RISC O
  929. Ltd. has opted to provide the documentation in standard HTML and PDF formats. So why is this so important? Well, aside from being able to use your favourite browser to view the documentation, you don't even have to do it on your RISC OS machine. That means if you have a second non-RISC OS machine with its own monitor, you can neatly sidestep my initial objection, by using that to display the documentation whilst you dedicate the RISC OS machine to doing the work
  930. Finally, at £30 (£25 for Foundation members), it's much cheaper than the original price of the Tekkie Disc, and certainly much cheaper than paper manuals
  931. Better than paper?
  932. So how does it shape up against the positive reasons that I listed above for using disc based documentation
  933. Well, good use has been made of the ability to link between pages in the HTML version, you can obviously open multiple browser sessions on different pages and not have to worry about keep a paper manual open, and it's also clearly much cheaper and economical on space
  934. Unfortunately, it falls down on the first point. Although most browsers will allow you to search within a page, there's no concept of a complete manual or set of manuals so you can't, say, search the entire PRMs for a particular piece of text. It's not a failing of the product, it's just simply not possible to provide searchability with HTML documentation without using additional software that may restrict the choice of browsers and/or prevent it being used on a non-Acorn platform
  935. Using Fresco, a cut down version of which is supplied on the CD, access to the pages is quick and easy. In fact, this seems to be a very competent conversion of the paper manuals into HTML format, aside from one link which I came across that didn't work
  936. But that's where the real limitations show. This is purely a conversion of the existing paper manuals and no more. There's no documentation on the differences in RISC OS 3.7, or more importantly 4.0 and even the RISC OS 3.5 and 3.6 differences are still out on their own in volume 5a, not integrated with the rest of the PRM in a logical fashion
  937. As well as a cut down version of Fresco, there is also a public domain PDF viewer supplied. However, using this to access the PDF manuals seems inordinately slow, even on a StrongARM Risc PC and I couldn't get the PRM volume 1 file to load at all. Combined with the fact that some of the manuals aren't supplied in PDF format and there is no means of following reference links, I can't really imagine that many people will want to use the PDF versions over the HTML on a RISC OS machine unless you happen to have alternative PDF viewing software. Things improve somewhat when accessing them using xpdf on Linux. This is a great deal faster and although there is still no link mechanism for following references, it is possible to search an entire manual for some text which you cannot do with the HTML
  938. Conclusion
  939. So what's the final verdict? While it's a shame that we still have no documentation covering the additional and changed features in RISC OS 4, this is never-the-less a welcome alternative to those who wish to have access to the existing documentation, cheaply and easily
  940. As for me, I will probably continue to use my paper manuals. But then, I've already paid for them and they are already occupying space on my bookshelf
  941. Product details
  942.         
  943.                 Product:
  944.                 Programmers Reference Manuals on CD
  945.         
  946.         
  947.                 
  948.                         Supplier
  949.                 
  950.                 
  951.                         RISCOS Lt
  952.                 
  953.         
  954.         
  955.                 Price:
  956.                 £25.53 +  VAT (£30.00 inc or £25 inc to Foundation members)
  957.         
  958.         
  959.                 Address:
  960.                 
  961.                         3 Clarendon Roa
  962.             Cardif
  963.             CF23 9D
  964.                 
  965.         
  966.         
  967.                 Tel:
  968.                 (02920) 492324
  969.         
  970.         
  971.                 Fax:
  972.                 (02920) 440071
  973.         
  974.         
  975.                 WWW:
  976.                         
  977.  
  978. Mark Smith
  979.  
  980.  
  981. ÿÿÿÿVOLUME1/ISSUE2/DWMM/INDEX.HTM Volume 1, Issue 2, DrawWorks Millennium
  982.  
  983.  
  984.  
  985.  
  986. DrawWorks Millennium
  987. While we all wait for what can seem like a thousand years for Cerilica Vantage, Richard Goodwin looks at iSV's supercharged version of Acorn's Draw.
  988. (Click on the small images to load larger versions in a new window. Right-click to load them into a new window in most browsers).
  989. DrawWorks Millennium is a somewhat schizophrenic package in many ways; despite taking its name from a graphics package, over half of the CD is given over to fonts, and a good deal of the rest of the disc is clip-art. Then there's the fact that the graphics package isn't really a package at all, it's a bolt-on to an existing program, although because this other program Acorn's Draw, there shouldn't be anyone without a copy.  And as for the characters of Dr. Fonty and Mr. Clippy ... well, that's another story.  So I hope you'll forgive me if it's a little difficult knowing where to begin.
  990. Drawing
  991. Let's start, however, with the package that gives the disc it's name - DrawWorks Millennium, or DWM for short.  As with all the programs and resources in this package you can install to your hard drive or run straight from the CD. In fact, for technical reasons that are too tedious to go into here, I was running them from a CD-ROM drive in a completely separate machine over a network with very few problems, which bodes well for schools with networked resources (although the asking price is just for a single-use copy, so ask about a site license).
  992. The programs here also run on any machine with 4MB of RAM, from RISC OS 3.1 upwards to a RISC OS 4 StrongARM machine, although obviously you should have at least a CD-ROM drive and probably a hard drive too.  The version reviewed was v1.66; a new version is due out for the Wakefield show, and come with extras to do things like improve colour representation in RISC OS as a whole by improving colour dithering and anti-aliasing, but this version will be Risc PC only and 1.66 will be kept on the books for earlier machines.
  993. All the manuals are in electronic format which is good from the point of view of keeping them together with the software, but you can only have one manual loaded at a time and of course there's the old chestnut of not being able to read them in the bath.
  994. DrawWorks Bar
  995.  
  996. Running DWM also loads a copy of Draw, and by clicking on the Draw icon you get the standard window plus two new toolbars along the top - the lower bar adding new tools, and the upper allowing you to change to other sets of tools.  The tools vary from the fairly useful to the pretty unique; for instance it has tools for altering the zoom factor or changing a font's size and colour, which are available in the unaltered version of Draw but require some navigation around the menu structure to find which can be a bore if you're experimenting; but it also has features like a very advanced colour selector which has menus of pantone-alike colours all listed and displayed for you, the ability to tint your images so that they look faded out, or cool tools like a drop-shadow maker, an outlining tool for creating roadmaps, or distortion tools for twisting and bending images.  Although many of these effects can be duplicated using other separate programs or some hard slog in ArtWorks, having them all available from within Draw at this price is pretty good going.
  997.  
  998. The map generating and brightness adjusting tools provided by DrawWorks Millennium.
  999.  
  1000. Two Draw files produced from DWM are included on the CD, the 
  1001. However, there are some issues with the user interface that make using the tools less pleasurable than they could have been. Partly this is due to Draw itself, which can be a bit of a pain sometimes.  Selecting an object from within a busy part of a picture has always been awkward, especially after having used ArtWorks for a few years. I mention this primarily because DWM's tools generally work on selected objects, and then unselect those objects after applying an effect. This means that you have to go through the process again every time you want to experiment
  1002. For the most part I can understand the part about having to select parts of an image to apply something to, but it gets a bit wearing sometimes to have an error box pop up all the time, especially for some tools like the print preview. You can emulate printing on, say, yellow paper which is a good thing, but surely if you're printing you're mainly going to be printing the whole page?
  1003. Other tools compound the confusion by reacting in an inconsistent manner - the tool to trace objects into roadmap-like thick outlines works in situ, but the drop shadow tool next to it requires you to save out a separate file first (even though you can 'save' it to the current Draw window).  Importing foreign file formats is a good thing; howver, the importer says it can't import Draw files or Sprites - which are handled natively in Draw - which seems a little lazy when they could have been passed straight through to the main program.  Also some of the toolbars are wider than the Draw window (when using A4 paper and/or smaller screen sizes) which requires a bit of scrolling to see all the tools; it's harder to say how this could have been implemented better, but it's not as easy as it might otherwise have been.
  1004. Case in point: one of the most pointless and annoying of tools is the 'insert named file' window; it's just a window with a beige text input box and an OK button, which doesn't accept drag-and-dropped files, and doesn't have a Cancel button or even a close icon on the title bar.  It doesn't even close when Draw loses input focus - the import file window does, which I found annoying after trying to hunt through my messy Desktop for files, but you should really pick one model or the other and stick to it.  After fiddling around for a while I had to click on the OK button and get an error box for my troubles
  1005. It's only a little thing, but it's a pointless tool (who types in filenames manually to load files?) which has been badly implemented in so many ways when it would have been easier to do it right (like not changing the default colours or switching off standard window furniture).  It makes the learning curve of the program just that bit steeper for no real benefit, which is something to bear in mind in a classroom environment.  A pity that it should mar some otherwise excellent tools.
  1006. Fonts
  1007. And so on to the fonts. The disc contains a program called Typo2100, which, as the second part of the name suggests (casting aside any jokes about a design package containing an obvious Typo), houses some 21 hundred typefaces. This compares favourably with other offerings - for instance, Zenta Multimedia's RISC OS Font Emporium has just 550 fonts, while Harry Decker's website (fonts.iconbar.com) had some 2,500 fonts when last I checked. However, Harry decker's site concentrates on having lots of different fonts with wildly differing levels of character set support, rather than a good solid collection of quality fonts in as many styles as possible as we have here.  Grouped into 13 categories (Decorative, Script, SansSerif etc.), the disc comes with an excellent previewing program which shows a large body of text and some common characters to show the font off in its best light. This is quick as the previews are stored as sprites - it doesn't really matter about disc space when you're using a CD. 
  1008. Although I say that it's an excellent program, it is marred by a completely style guide busting interface; having been on the receiving end of several e-mails in the past for minor infractions in the positioning of icons or menus in my own programs, I shudder to think what the same people would say if I inflicted this shiny yellow monstrosity on them.  Many of the other applications on the CD are inflicted with the same lack of taste - Mr. Clippy the clipart manager is so bad (beige-yellow with cyan swirls) that I think that even the programmer was put off enough to add an option to switch it off, but no such luck here.  All of this is particularly ironic given that they're part of a design package, you really have to look past the design and try to concentrate on the content.
  1009. The rather non-standard yellow and blue windows
  1010.  
  1011. If you don't find the font you want in Typo2100 then there are a collection of applications to help you design or modify your own.  Although some of them intersect - Dr. Fonty offering much that can be found in the separate FontTrixPro for instance, although FontTrixPro is more automated - it's a good selection with some handy features.  For instance, having downloaded some fonts from the aforementioned website it's sometimes off-putting to switch to a different font in, say, Impression, only to find that there's no lower case letters so most of your text vanishes. With Dr. Fonty a click or two of the mouse generates a 'small caps' version of the capital letters in the lower case area, which is pretty cool.  Being an amateur font fan (I love to use them, I just can't be bothered to create my own) I find it much more enjoyable to modify someone else's fonts to fit my needs; there's even a program to suggest what font to use in a given situation, or match the fonts to their PostScript counterparts.  A solid collection of resources then, representing good value for money
  1012. Dr. Fonty in action
  1013.  
  1014. Clip-art
  1015. The inclusion of clip-art on a CD usually brings out one of two reactions - it's either a useful collection of resources, or 'shovelware' (included only to fill up extra space).  This selection does add something to the disc however, and is a good, varied mix of bitmap and vector format images from a variety of sources (Akalat, APDL, Fabis, Smart DTP, and Christopher Jarman).
  1016. Obviously it's possible that you might have acquired some of these images before (as with other parts of the CD), but going to multiple sources should keep the likelihood of this to a minimum so kudos there.  Obviously I didn't have time to go through the whole 160MB of data, but a quick sample showed a good mix of JPEG format photographs, some Sprite format scans of engravings and postcards, and some Draw format vector images; the photographs especially were of excellent quality, very clear and properly cropped so there's no obvious borders from where they've been scanned from a 35mm slide as with some collections.
  1017. An example of the quality of the clipart
  1018.  
  1019. I've already touched on the rather dire default colour scheme of the clipart previewer Mr. Clippy, so I'll just warn you that it sings to you when you start it up.  Yes, that's right, sings.  It's amusing the first couple of times, but gets tired real fast and I can only imagine what it would be like with a whole classroom full of computers doing it.  You can't turn it off, and as with all the programs on the disc you can't hurry up the loading banners by clicking on them or pressing keys.  I suggest a little judicious pruning of the !Run file of these programs before letting them out into general circulation.  The Windows-style help wizards that pop up at the start of many of the programs are less annoying though, especially as Eric Morcombe puts in a guest appearance now and again, and you can switch them off from the preferences window
  1020. If you think this is bad, wait until he starts singing!
  1021.  
  1022. Conclusion
  1023. So all in all, this is a fairly well-balanced collection of resources for the designer on a budget.  Would I recommend this package to the serious designer over, say, the old workhorse of ArtWorks, or the up and coming Vantage?  Well, no.  The main package might add some fine bells and whistles, but in the end you're still stuck with the interface of Acorn's Draw, with all its annoyances in selecting items near other items and the like, and adds a few of its own.
  1024. If you have plenty of money and are serious about getting into design, you'd be better off with a proper design application, but to be honest I doubt that iSV are aiming at the professional market.  Would I recommend it to someone on a budget who just wanted an all-round package of resources?  With a few reservations on the interface design and so on (for some reason on my 40MB machine the memory allocation went a little screwy and the electronic manual sometimes ended up taking about 28MB of memory, DWM often snatching a further 2MB or more), then yes; some of the individual parts, such as the font collection or the colour handling and special effects of DWM are worth the admission price on their own, and would serve the needs of a hard up student or school quite well.
  1025. Product details
  1026.         
  1027.                 Product:
  1028.                 DrawWorks Millennium
  1029.         
  1030.         
  1031.                 
  1032.                         Supplier
  1033.                 
  1034.                 
  1035.                         iSV Product
  1036.                 
  1037.         
  1038.         
  1039.                 Price:
  1040.                 £40 + p&p (Site licence £80 + p&p)
  1041.         
  1042.         
  1043.                 Address:
  1044.                 
  1045.                         86 Turnberry,
  1046.                         Home Farm
  1047.                         Bracknell
  1048.                         Berkshir
  1049.                         RG12 8Z
  1050.                 
  1051.         
  1052.         
  1053.                 Tel:
  1054.                 (01344) 455769
  1055.         
  1056.         
  1057.                 WWW:
  1058.                         
  1059.         
  1060.                 E-mail:
  1061.                         
  1062.  
  1063. Richard Goodwin
  1064.  
  1065.  
  1066. ÿÿÿÿVOLUME1/ISSUE2/EDITOR/INDEX.HTM Volume 1, Issue 2, My World - the editor's view
  1067.  
  1068.  
  1069.  
  1070.  
  1071. My World
  1072. David Matthewman comments on recent developments in the market.
  1073. I'm writing this shortly before the Wakefield Show. Six years ago, at the then Harrogate show, Acorn launched the Risc PC 600. The top-spec machine had an ARM600 processor, 8MB of DRAM with 1MB of VRAM, a 400MB hard drive and RISC OS 3.5 - and I bought one
  1074. I still have it, and use it daily. It now has 24MB of DRAM, 2MB of VRAM, an 8GB hard drive, a 200MHz StrongARM processor and RISC OS 4, and is pretty close to being a top-of-the range machine. What's more, when Castle Technology's KINETIC Risc PC is launched at Wakefield, I'll be able to buy another upgrade card for the machine and upgrade it to the spec of one of Castle's new machines. That's pretty amazing for a six-year-old machine, and you won't find anything like it in the PC or Mac markets
  1075. Around four years ago, when the talk was all of Oracle saving the Acorn market by developing the NC, one of the expectations was that technology developed for the NC would filter back into the RISC OS market. That didn't really happen at the time, sadly, but now something has at last made the cross-over for our benefit. It's not from Oracle, but from Oregan Networking, who sells large quantities of NCs to clients in the Far East and has developed a web browser to run on them. The browser is called Oregano, and a RISC OS version is now being sold by Castle Technology
  1076. There'll be a detailed review of Oregano in the next issue, but the summary is 'Buy it!' It's a fantastic piece of software, stable, and well able to cope with most of the latest protocols used on the web. It wipes the floor with the opposition, and is being actively developed. I feel a little guilty for dismissing Webster XL which R-Comp and Andrew Pullan have been doggedly developing over the past two years when everyone else seemed to have abandoned the web browser market, but in all honesty Oregano is a far better browser
  1077. The big news outside the RISC OS market is the DoJ's verdict in the Microsoft case, where a company that had bundled its own web browser with its OS and bullied dealers into toeing the company line got into big trouble for anti-competitive practices. One striking thing is that this is more or less what Acorn did, but Acorn simply wasn't big enough for anyone much to care. A few people have suggested that the possible break-up of Microsoft is good news for RISC OS; I'd like to think that, but I honestly doubt it; I think it's at best neutral news. RISC OS is simply not a big enough player to benefit from any problems Microsoft is having; Apple and the Linux community are far better placed to benefit
  1078. Still, with Castle, RiscStation, Millipede and Microdigital pushing the envelope on new hardware, and with the holy grail of a decent web browser on our platform at last, who knows
  1079. Colophon
  1080. RISC World is published by David Holden of APDL and edited by David Matthewman
  1081. Contributors for the magazine submit their copy in a number of forms: HTML, plain text, Impression, Ovation or EasiWriter being the usual ones. The copy is passed through EasiWriter Pro+ and saved as HTML, then hand-finished using the HTML mode in Zap. A couple of Awk and Perl scripts are used to add standard formatting to the HTML
  1082. The HTML uses DTP-like tricks like table-based layouts and physical markup as little as possible, saving tables for the page heading, product details and (because Browse can't flow text around images and you asked for it) images. No style sheet is used, because currently no RISC OS browsers understand them, so the fonts and font sizes will be whatever is the default for your browser
  1083. There are two copies of the editorial copy in the CD-ROM, one intended for RISC OS machines and one for other OSs. The RISC OS area of the site uses sprites to display screenshots - these are stored as PNGs (not GIFs) on the other area of the site. Bitmap files are converted using Spr2Png, Png2Spr and InterGif. Original graphics are created in Photodesk, Draw and (ahem) CorelXARA for the PC
  1084.  
  1085.  
  1086. ÿÿÿÿVOLUME1/ISSUE2/FUNTEX/INDEX.HTM Volume 1, Issue 2, Fun with TeX
  1087.  
  1088.  
  1089.  
  1090.  
  1091. Having fun with TeX
  1092. Paul Webb shows that there's more to the TeX text processing language tha
  1093. meets the eye.
  1094. Despite its customary association with mathematics and science, the TeX document proccessing language has much to offer the more adventurous user. If you play games, design fonts or need to write documents in a language other than English then TeX could be for you. The TeX community has always been a very international one (see 
  1095. Plain TeX speaks in tongues
  1096. Even without improvements designed to help with other languages, it is still possible to produce documents in a variety of languages which employ the Latin script by using nothing more than Plain TeX. Plain allows English-speaking TeXnicians to avail themselves of accents like the hat, umlaut, and tilde, as well as special characters like ligatures.
  1097. Kopka and Daly - the authors of the excellent Guide to LaTeX - work at the Max-Planck-Institut für Aeronomie in Germany. The name of the institute and the title of their book, which I would recommend to the readers of RISC World, could be typeset using Plain TeX in the following manner:
  1098. Helmut Kopka and Patrick W. Daly of the {\bf Max-Planck-Institu
  1099. f\"ur Aeronomie} are the authors of the brilliant book {\sl A
  1100. Guide to LaTeX. Document Preparation for Beginners and Advanced
  1101. Users\/} which everyone should read
  1102. \en
  1103.  
  1104. Note how the dieresis above the u in fur was produced with the \" command. Observe also how the scope of the slanted command \sl was determined by grouping the book's title in brackets and how italic correction - controlling the interword space between slanted and roman type - was activated with the \/ command.
  1105. Get the idea? If you do, try the following exercise.
  1106.  
  1107. Figure one above shows the transcription from Arabic into the Latin script of a short passage detailing the geographical position of Egypt. Note the use of the macron or bar and of the use of the dot-under-accent character. Here's the challenge. See if you can typeset the passage using Plain TeX by using the following commands:
  1108. \d <letter> which produces a dot under the character.
  1109. \= <letter> which produces a macron.
  1110. \i which produces an 'i' without its dot.
  1111.  
  1112. It's not that difficult, honest.
  1113. Does all this sound a bit like hard work? If the answer is 'yes', then think about using LaTeX for multilingual document processing.
  1114. LaTeX and the Tower of Babel
  1115. It is probably a good idea to confine yourself to the LaTeX base system if you only intend to include a few lines from a language other than English in a document. 
  1116.  
  1117. If however, you intend to produce an entire document in a language other than English, the babel package by Johannes Braams is one possible way to go. This package was devised in order to lessen the North American feel of LaTeX documents. Babel has a number of distinctive features which include the definition of hyphenation patterns via an external file and the translation of LaTeX elements and commands from North-American English into the requisite language. Babel is also of interest because it distinguishes between dialects within a language. A user is therefore able to choose between  continental Portuguese and Brazilian Portuguese or between German and Austrian German.
  1118. Babel is activated by including the language or languages that you intend to use as the argument of the \usepackage{...} command. Where you specify more than one language, the last language listed will be the default. It is also possible to switch between languages by using the \selectlanguage{<name of language>} command. If you think that babel may be what you require then refer to Goossens et al's The LaTeX Companion (
  1119. Non-Latin scripts
  1120. My own journey along the path towards TeX enlightenment (still not very far advanced!!) began with the discovery that TeX could deal with scripts as diverse as Greek (both Ancient and Modern), Russian, Arabic, Chinese and Hindi. Check out Goossens et al's The LaTeX Web Companion (
  1121. But my personal favourite is TeX's ability to produce the Arabic script. I have always loved Arabic because of its status both as a medium of communication and as an art form. So if you share my enthusiasm take a look at the ArabTeX package from the Institut fuer Informatik, Stuttgart. ArabTeX includes a Metafont generated Naskh script - a small copybook-type script  used since the tenth century to produce the Quran - and a set of macros which can be used with Plain or LaTeX. ArabTeX extends the base system's capabilities by creating the arabtext environment inside which it is possible to insert mathematics and non-Arabic quotations. It is also possible to include one-line Arabic quotations in a document which would otherwise be dedicated to another language by placing commands between the <....> symbols. Figure Three (below) shows the one-line quotation mechanism is action. 
  1122.  
  1123. Your move..TeX plays chess
  1124. So you're not interested in languages. That's fine; why not use TeX to produce a game board
  1125. If this topic interests you, you'll be delighted to discover that TeX can be used to produce Go, Xiangqi, Backgammon and European chess boards. For the sake of brevity we will however limit our discussion to European chess.
  1126. A LaTeX package is available - called chess, naturally - which uses a classical-looking chess font designed by Piet Tutelaers. Tutelaers' chess font is made up of 26 characters which depict the pieces on white and black squares respectively. The game board's perimeter is not represented by the font but appears courtesy of a set of macros. The package is useful for annotating complete games, devising chess questions and for recording move updates. Figure Four (below) shows a sample chess board after the dvi file was run through dvips and viewed through Ghostview on the PC Card whilst 
  1127.  
  1128. An interesting addition to the chess typesetting capabilities of LaTeX is bdfchess by Frank Hassel. This was designed for people who play correspondence chess where the tradition is to play two games at the same time so that both players can play as White. Hassel has consequently devised additional environments for the typesetting of chess postcards. Figure five (below) shows one side of a sample card. The reverse side would of course contain two on-going games typeset in the style of Figure Four. Interested readers should again consult Goossen et al's The LaTeX Graphics Companion for a complete account of the chess and bdfchess packages.
  1129.  
  1130. Metafont: TeX's Indispensable Cousin
  1131. So how is it possible for Plain TeX and LaTeX to use such a wide variety of fonts? Part of the responsibility for TeX's power must be attributed to Metafont because of its ability to describe the meta-ness of a shape in  terms of a number of mathematical parameters. Knuth - the creator of both TeX and Metafont - uses the analogy of a meta-recipe whose ingredients can be mixed in varying proportions in order to create a slightly different flavour. The Metafont user therefore writes a program to create each symbol of a particular typeface. A Metafont program also requires an understanding of Cartesian coordinates and of a number of commands which can be used to produce shapes. The budding Metafonter will likewise need to develop an understanding of the relationship between mf, gf and pk files before taking full advantage of the system. Interested readers are referred to the brilliant METAFONTbook by Knuth (see 
  1132. A Word of Encouragement
  1133. I hope that this article has convinced you that TeX can be used for more off-beat uses. I have looked at a few extensions to Plain TeX and LaTeX which match my interests but there will certainly be a package to suit your particular needs. A good place to start is Graham Williams' on-line TeX catalogue (
  1134. Much of the software mentioned in this article is 
  1135. I hope that you enjoy using TeX as much as I do. So now it's over to you...
  1136. Paul Webb
  1137.  
  1138.  
  1139. ÿÿÿÿVOLUME1/ISSUE2/GAMES/INDEX.HTM Volume 1, Issue 2, Gaming World
  1140.  
  1141.  
  1142.  
  1143.  
  1144. Gaming World
  1145. The latest from the gaming scene with Andy Spence.
  1146. News
  1147. There has been a little movement behind the scenes of the RISC OS gaming market.  Although I can't bombard you with an avalanche of stunning new games reviews, there is a fair amount of news. With work steadily progressing at Artex, long-running TBA (producer of Brutal Horse Power), announced its closure. This issue we take a look at the common phenomena of budget releases, something which has caught on in every games market at the moment, and news from RCI
  1148. With TBA announcing the end of its reign, who better to pick up the pieces than RCI? RCI will be selling the entire TBA games collection on one CD and - assuming this will be a reasonable price - it should mean that these originally overpriced games should actually be worth the money.
  1149.  
  1150. Humour aside, Andrew Rawnsley has also said that the 3D flight sim F16 that we briefly previewed last issue has been put back until new hardware appears. In its place Chaos Engine is the new focus for release. Out probably before you read these words, the game is verging on Jurassic from 1993 and is a conversion of the Bitmap-Brothers top-down adventure game. Graphically reminiscent of Speedball 2, it's the usual drill of legging it round a map, picking up keys, collecting power-ups to trade in between levels and as Mr Rawnsley so gracefully puts it 'blasting bad guys'. There are two characters which you select from six possibilities and you can then choose either two human players or have the computer be your only friend. Whether or not this game will be worth the £20 price tag we'll have to see, but we'll let you know when we review it next time. However, if nobody buys this, there is no chance of Total Annihilation appearing.
  1151. Big news from RCI is the possible release of Cavedog's huge PC hit, Total Annihilation. This highly-addictive strategy C&C look-alike was received well in the PC world and you can read more about it in our initial look. Like all RISC OS-related things nothing is definite as although RCI have many coders willing to convert the game, they are still tracking down the original source code from the now dispersed Cavedog company. Mr Rawnsley has recently said that he is having major problems with this conversion, but that he also has two other games on the cards from the Bitmap Brothers: Z and Speedball 2000
  1152. The biggest RISC OS event this year is fast approaching in the form of Wakefield 2000. Naturally RCI will be there, hopefully with new conversions and you'll be able to see Iron Dignity in action on the Artex stand. Strangely the recently stagnant Paradise will have a stand, even though we have not seen any signs of life from them in over a year.
  1153. Previews
  1154.  
  1155. Brief previews of future games in the RISC OS market including Chaos Engine, Iron Dignity and Skirmish. Check it out here
  1156.  
  1157.  
  1158.  
  1159.  
  1160. Total Annihilation, the PC smash hit could be heading for a conversion. If you don't know what its all about, read our 
  1161.  
  1162.  
  1163.  
  1164. Budget Reviews
  1165. A new regular section to cover the popular trend of cheap software, this month we look at APDL's Public Domain CDs and Wizard Apprentice, see here
  1166.  
  1167. Company Contacts
  1168. A compiled list of addresses, phone numbers, e-mail and URLs for  all the developers and publishers on the RISC OS gaming scene
  1169. Andy Spence 
  1170.  
  1171.  
  1172. ÿÿÿÿVOLUME1/ISSUE2/HTML101/INDEX.HTM Volume 1, Issue 2, HTML FAQ
  1173.  
  1174.  
  1175.  
  1176.  
  1177. HTML FAQ
  1178. Richard Goodwin brings you up to speed with HTML on RISC OS.
  1179. 1. How do I create a web site?
  1180. Internet newsgroups abound with questions on how to edit and create a web site, or in the case of the RISC OS groups it's usually worded as 'what's the best program to edit my web site?'  Of course it's a little like asking 'how long is a piece of string?' because it really depends on what you want to achieve, and how much you want to pay; although many people might bemoan the fact that RISC OS lacks a browser that can handle all the bells and whistles of modern PC browsers, when you start to look into how RISC OS machines support the Internet it's quite surprising just how much software there is.  So, to try and help with this perennial problem, I'll try and go through all the options one by one
  1181.   WYSIWYG editing
  1182.   Using DTP packages
  1183.   Using the source
  1184.  
  1185. WYSIWYG editing
  1186. Editing HTML using a WYSIWYG editor (which I'm sure you already know stands for 'What You See Is What You Get') is the quickest way to create a web site, as you generally get the ease of use of a word processor, but you can access more advanced features like frames, tables and JavaScript doohickeys.  When you save your site to disk, it'll look exactly the same in your web browser as it did in the editor - well, mostly.
  1187.  
  1188.  
  1189. WebMaster, WebSpider and SiteWriter in action
  1190. RISC OS has three such editors in circulation, namely WebMaster from IMS (
  1191. Why should you use a WYSIWYG editor?  Well, it's very, very easy to use one to get a site designed quickly, but scores over using a DTP package in that you not only get more advanced options, you also get some form of site management built in - you can generally check the site for internal consistency (making sure links don't go to pages that don't exist for instance), and even upload the pages that have changed directly to your webspace for you.  So why wouldn't you use them?  Cost issues aside - you have to pay for these packages, over the free source editors or the DTP/word processing packages that you might already have - WYSIWYG editors generally generate HTML which is less optimised than doing it be hand, using too much HTML in an effort not to slip up.  The example I usually use is an e-mail I was sent from Microsoft Outlook
  1192. <DIV><FONT color=#000000 size=2>Just to let you know that I'll be out of th
  1193. office on Thursday 23 from 11 am to approx 2 pm</FONT></DIV>
  1194. <DIV><FONT color=#000000 size=2> </FONT></DIV>
  1195. <DIV><FONT color=#000000 size=2>Anne</FONT></DIV>
  1196. count: 239 bytes.
  1197. Almost half of this code is unnecessary - if you were to code this by hand, it would be more like
  1198. <font size="2">
  1199. Just to let you know that I'll be out of th
  1200. office on Thursday 23 from 11 am to approx 2 p
  1201. <P> 
  1202. <P>Ann
  1203. </font>
  1204. count: 134 bytes
  1205. ...a clear saving, which might not look like much but added together over a large page can substantially affect the download time of your web site.  I'm not saying RISC OS editors are quite this bad, but Netscape Composer is exceptionally bad - to do a paragraph break it would often do things like <center> </center> instead of a simple <p>, and due to a bug in the Netscape browser's rendering it didn't even display properly!  So, it's worth learning at least a little HTML to be able to fix any problems
  1206. In summary, if you're pretty serious about web design, have some money to spend, but don't have the time to sit down and learn HTML first, then you'll probably be better off with a WYSIWYG editor.  Everyone else, read on
  1207. Using DTP packages
  1208. DTP packages and other word processors have a big advantage - you've probably already got one so you don't have to spend any more money, and you're probably comfortable using it.  If you want to publish existing information it'll probably be saved in a format that loads into your package, perhaps because that's what you originally used to type it in.  However, you might not win any awards for great design this way, and if you're using older software you might have to upgrade to a later version, or perhaps in the worst case even ditch your software altogether
  1209. Case in point: Impression.  Once the DTP package for the Acorn range of computers, you can even get the Junior version for free from the Computer Concepts web site (www.cconcepts.co.uk).  However, for web design it's a pain.  As standard it doesn't come with any HTML functionality; you can add extra modules into it to give rudimentary HTML loading and saving, but it only really works with stuff that's already in HTML format or if you're starting from scratch, and even then it's not great.  If you want to convert an existing document it doesn't do simple things like convert headlines and sub-headings into the HTML equivalent (<H1>, <H2> etc.), and it doesn't encode 'dangerous' characters into safe equivalents - it allows smart quotes, pound signs and even triangular brackets through unaltered, which will play havoc with your document when it's viewed in a web browser, especially on a PC where the character mapping is different
  1210. On the other hand, the TechWriter/EasyWriter range (I'll call it Writer for short) is absolutely superb using HTML, as it's a later vintage.  I regularly use one at work to take Microsoft Word documents and save them as sane, simple HTML; Word itself not only goes overboard with the HTML tags in an attempt to render the document exactly the same in a web browser as it is in the word processor, it also (as of Office 2000) adds a huge amount of Internet Explorer-only XML.  And it still fails (a DTP document is fixed width - you set the page to A4, and that's it - whereas a web page is as wide as the browser window, which can vary wildly).  Writer can load an HTML file and import all the images so the DTP version is very close to the web browser version
  1211. So, I obviously use Writer for any HTML that's predominantly text based, right?  Nope.  I've been using Impression for years; I love the ease of the user interface, I know all the keyboard shortcuts, and I've programmed up the abbreviation dictionary to correct common typos.  Writer is a whole new learning curve, and I find the user interface a bit fiddly. So what's the solution?  I'm lucky in that I have the option to use both - Writer can import Impression files that have been saved as plain text with embedded commands, so I write using Impression and then get Writer to make a fair fist attempt at converting it.  There are third-party Impression DDF  to HTML converters out there - try DDF2HTML by John Alldred (http://www.protovale.co.uk/john/) - so in the end it's whatever works for you
  1212. Impression Publisher and TechWriter being used to create what will eventualy become Web pages.
  1213. If you have a HTML-enabled word processor, try it; if what comes out the other end is okay, then use it.  If not, then you might have to go for a more modern program, and you might want to ask a few questions and even try and get hold of some example output before you part with your hard-earned cash.  It's certainly easier than teaching a class full of kids HTML though
  1214. Using the source
  1215. Up until very recently even in the PC and Mac community you couldn't really call yourself a proper web designer unless you did the macho thing and hit the raw HTML source instead of using those namby-pamby WYSIWYG editors.  Now that the likes of Dreamweaver and HoTMetaL Por have both modes, and even FrontPage can do a source mode, the days of plain old text editors is going a little more out of fashion.  However, it's cheap, and still a very good way to get good, clean HTML - if you know what you're doing.  You can get lots of help to make things less painful, but there's no substitute for learning the HTML language
  1216. Hand-editing HTML
  1217. You have all you need to get started built into (or included with) your machine - the text editor Edit.  However, apart from the occasional quick chop and change and a very nice, easy to use advanced search and replace facility, if you're going to be using a text editor for any length of time Edit will fast become very restrictive.  It doesn't do the two things that you want from a text editor that does HTML - context-sensitive colouring, and macros.  Context-sensitive colouring basically means it will pick out important chunks of text - such as HTML tags - and colour them differently from the rest of the text, making it easier to see where the tags start and the text ends.  Believe me, if you're trying to find an error in a large page, this is essential.  And macros allow you to quickly add common HTML sequences, for instance you might select a piece of text, click a button and that section is marked as being bold
  1218. There are two main contenders in this field, both of them free - StrongEd and Zap.  Which is the best text editor?  Well, that's a whole other holy war, but my rule of thumb is that if you have to ask the question it's probably StrongEd.  StrongEd is a nice, easy-to-use but powerful text editor.  Zap is even more powerful, but perhaps a little more unfriendly to newcomers; it is, however, pretty much essential if you also want to write programs in a 'proper' language, such as C.  You can get these text editors from 
  1219. You're not constrained to the limited HTML provided by the text editors however; in days gone by it was almost a right of passage that a webmaster would write his own macro inserter.  There are not as many under RISC OS as I expected - in my research for this article I could only find four, and of these I'd written three!  Trying not to blow my own trumpet too much, first I released the very simple HTMacroL, then the slightly more advanced HTML², and now there's HTML³ which covers most areas of HTML from simple effects to tables and even tricks with JavaScript and Server Side Includes (SSI).  The other package I found was HTMLKeys by John Alldred, which offers a simple to use single window of commonly used tags.  These programs all work in the same way - you edit your document in a text editor as normal, but when you click on a button in the macro program the text gets typed into your editor automatically, saving you a lot of work.  John's site is at http://www.protovale.co.uk/john/, and my own programs can be found at http://www.goodwin.uk.com/richard/programs/ - just to keep up the friendly rivalry you can also get programs to check the links in your web pages from both sites, although John's (LinkCheck) is better for checking internal links, and mine (LinkSure) also checks external links if you're connected to the Internet
  1220. HTML³ and HTMLKeys
  1221. Finally, there are all sorts of other free goodies to help you with creating a web site the hard way.  You'll probably want to have some sort of HTML validator to find bugs in your code, and the best known of these is HTML Tidy (also known as just plain Tidy), originally written by Dave Raggett (the guy who writes the HTML specifications, so he knows what he's talking about - most of the time!).  There are a number of conversions of this program to RISC OS, so the best bet is to head over to http://www.acornsearch.com/ and find the one that suits you best.  There's also Validator, which is absolutely the last plug I'm giving John Alldred this article.  You'll probably want to pick up InterGIF, which started out as a program to convert Sprite files to animated GIFs but is now indispensable for converting any type of file to GIF format whether animated or not (
  1222. CSS Design and Buttons in action
  1223. If you're really serious about hand-coding you site, there is a RISC OS commercial solution - R-Comp do a suite of tools called the Web Designer's Toolkit including HTMLEdit, plus other goodies such as a spell checker and imagemap creator. But more of that next issue, when I hope to be reviewing the suit in full
  1224. Richerd Goodwin
  1225.  
  1226.  
  1227. ÿÿÿÿVOLUME1/ISSUE2/HTMLTIPS/INDEX.HTM Volume 1, Issue 2, HTML tips and tricks
  1228.  
  1229.  
  1230.  
  1231.  
  1232. HTML Tricks and Tips
  1233. Richard Goodwin lets you into some more of the deper secrets of the web designer.
  1234. Colour and layout
  1235. Some purists believe that any change in the colour of a website from the default grey background, black text, and blue/purple/red links (depending on whether it's been clicked on or not) is an unnecessary complication which makes it harder for visitors to a site to understand how to navigate around your site, and therefore the use of colour is some kind of design heresy.  However, I'm sure you'll agree that this would not only make web browsing and site design a pretty dull experience, it'd also make for a very short article, so I'll plough on.
  1236. Colour
  1237. Colour brightens up a website, and careful use of colour can make it look more professional as well; but what constitutes 'careful use'?  Well, the first thing is generally not to go overboard.  The saying 'less is more' is especially relevant when you're trying to keep one eye on the download time, so it's a good job you can add colour quite cheaply - the attribute bgcolor can be dropped into either the <body> tag, or into the definition of a table cell (<td>), and a small two-colour GIF image of a few bytes can add colour and even a little texture. You can jazz up that boring old web page for the price of just a few bytes.
  1238. The second area to be careful of is the choice of what actual colours to use, and what they say about your site. If you're designing a site for a company, the job may have already been done for you - just get a hold of some headed notepaper, a business card or suchlike.  Chances are they've already put time and money into deciding on their own colours and logo, and they'll want the website to fit in with all their other 'literature', thus saving you several minutes of important drinking time
  1239. The IFEL website
  1240.  
  1241. If the company doesn't have coloured logos however, don't despair, there are other easy ways of picking a colour scheme - pick colours to do with what the site is about.  For instance, IFEL is well known in the RISC OS community for its hardware, and on its website (http://www.ifel.co.uk/) dark green with yellow and orange is used to reflect the green circuit boards and gold circuitry sometimes used in hardware manufacture.
  1242.  
  1243. If you don't have such an easy-out, you'll just have to do a little thinking.  You could just choose your favourite colour, but what goes with it?  Generally you'll want to choose at least two, maybe three,  colours that go well together so that when you start adding graphics you'll have something to contrast with the background to highlight the logo, links buttons and so on
  1244. What colours say about your site
  1245. Each colour has a certain connotation attached to it, which might aid or hinder the message you're trying to get across.
  1246. The obvious starting place is red - a bold, exciting colour which is associated with danger (blood, stop signs etc.) and passionate romance (red roses).  Possibly not one to over-use on a site about open heart surgery though.  A darker red is slightly more old-fashioned, perhaps harking back to the times when books were bound in red leather; a little lighter and you get pink, which is again of course associated with love, perhaps a little too much for the boys.
  1247. Yellow is a happy, cheery, sunshine colour, although sometimes a little too bright to be used on its own - it's great as a highlight colour but won't show up well against white.  If you tone it down a little you can go for a slightly brownish look - highlighted with yellow you can do all sorts of gold effects - or heat it up with a little red to make orange, which is a bouncy, fun colour
  1248.  
  1249. Moving on through the spectrum we come to green, which is associated with nature - spring's new leaves, a grassy lawn and so on.  Along with blue it's a very classy colour, and very calming, but this can mean you might find it a little dull - unless you add a little yellow and make it a zingy lime colour
  1250.  
  1251. Blue is a cool, calming colour, telling of calm seas and the sky on a summer's day.  It can also be cool in another way, mixed with a few white areas to make an icy theme.  Again it can seem a little dull and conservative, but like a pair of blue jeans it never really goes out of style.  Plus 35% of Americans say it's their favourite colour, and that many Americans can't be wrong, can they?
  1252.  
  1253. Purple is a hippy, trippy colour which I tend to avoid like the plague because it's used by so many people who want to be different but don't really have the taste to carry it off.  This is perhaps a little unfair, as it is a little magical and occult (beloved of both bishops and Goths) and goes well with pink.  Try it if you want to be nonconformist, but don't say I didn't warn you.
  1254.  
  1255. This just leaves the non-colours - black, white and greys.  Black is the most powerful of "colours", and along with white gives the greatest contrast which aids visabilty and readability.  It's also stylish - possibly why most consumer electronics has traditionally been black, although we finally seem to be moving away from this - and a little mysterious, with its association with dark nights and the occult.  White on the other hand is bright and clean and pure and good.  Greys can look a little washed out if not handled properly, but do have the advantage of going with just about every other colour
  1256.  
  1257. You could just mix and match these colours to create a theme - for instance reds, oranges and yellows to make a fiery theme, or blues, turquoises and greens for an ocean-style theme, oranges and browns for a warm, earthy, Mediterranean theme and so on.  Or you could apply a little colour science and save yourself the effort...
  1258. Colour wheels
  1259. A colour wheel is just a simple diagram showing colours arranged in a circular arrangement.
  1260.  
  1261. The six- and twelve-colour wheels.
  1262.  
  1263. Once you've picked a colour you want to use on your website, match it to the closest colour on one of the wheels above - the twelve colour wheel is just a slightly more complex version of the six colour one, so the rules work exactly the same on both.  If you chose a colour which doesn't appear to fit - for instance, pink or brown - don't worry, just think of the colours shown as the most extreme examples, you can always add a little white or black into the mix, so for those examples you'd use red - just assume light red is pink, dark red is brown
  1264.  The simplest rule to remember is that of complimentary colours - those that are directly across from each other on the wheel.  These colours are the exact opposite of each other, for instance, yellow and purple, green and red and so on, so you'll be a little familiar with them if you've seen photographic negatives.  These show up well when placed side by side, but can be a little harsh.  A neat trick is that if you mix them together in equal parts you get grey - remember how I said they went with almost anything?  Well if you use complimentary colours and need a third colour for your site, you could always try grey which might calm things down a little.  Or you could try a variation on the theme and go for three colours exactly one third around the wheel from each other.
  1265.  The more subtle rule however is that of adjacent or analogous colours - simply put, colours that are together on the wheel. In the section above I mentioned reds, oranges and yellows as a theme, as well as blues, turquoises and greens, both of which fit into an adjacent colour scheme.  Of course, all colours are sort-of close together when you put them all in a wheel, but to make adjacent colours work it's best to keep the spread as close as possible - perhaps just the colours one step either side of your main colour, which works well on the six point wheel but even better on the twelve point wheel.
  1266. Text areas
  1267. Consider most text-based websites - chances are they'll have a splash of colour down one side or across the top, and the main part of the page will be white with black text.  Why?  Well, first and foremost is that this is how it's been done for several hundred years with traditional publishing media such as books and magazines.  People feel comfortable with this, which instantly makes it easier for them to understand what you're trying to get across.  It's fairly easy on the eye; although staring at any colour on a monitor is going to give you a headache eventually, the high contrast of black on white at least gives the viewer a fighting chance.  And it's also pretty easy on the printer ink if someone wants to print a page from your site
  1268. Of course, rules are there to be broken, and style can come from knowing exactly when to break the rules - for instance, most games-related websites usually have a black background with white text.  This makes it closer to the style of most games, it's also a little easier on the eye (you get the same black/white contrast, but the predominance of black is more restful).  You'd also want to do the same dark background, light foreground if your target audience is using a TV as their display device - although NCs didn't take off in quite the way people had hoped, as the Internet continues to gain popularity you'll find more and more consumer devices being web enabled; for instance, the Dreamcast games console.  In this as in all things, it pays to know your target audience
  1269. So, for large blocks of text high contrast is good, traditional colours are good, cyan backgrounds with black text are bad.  It's also worth pointing out that textures for large text blocks run against most of the points raised above - you lower contrast, make printing harder (and much slower), and generally mess things up.  However, a subtle watermark or very pale logo down one side of the page can look quite stylish
  1270. Other rules and how to break them
  1271.  
  1272. Argo's website, showing the main page and a support page - same style, different colours.
  1273. You may have noticed by now that whenever someone tells me about "the rules", I always feel like rebelling and breaking them first chance I get.  So, as well as trying to write about what you should do, I'll also try and think about how you can go against this advice to produce a stylish, unique site.  For  instance, consistency helps the reader feel more comfortable and helps them navigate about the site; if they come to something that looks quite different to where they've just been they'll get a little confused, and start wondering if they've wandered off the main site rather than read your carefully crafted prose, so you try to keep a similar layout and the same colour scheme throughout the site.  They way to break this rule is, of course, to decide from the offset that multiple colours are part of your design; for instance, the current ArgoNet site (http://www.argonet.co.uk/) is similar in style across much of the official section, but the main pages are in shades of blue, the support area is made up of greens, and the links section is predominantly orange; the layout is very much the same, but the colours help show at a glance which part of a fairly large site you're currently in.
  1274. Another rule is that the eye will start on the left and move right, and from top to bottom; the focal points are to the centre or upper left of the page.  You should, therefore, put any navigation toolbars along the left or top edges of your page, with the text on the navigation buttons going left to right.  However, this seems way too traditional and Western for me at times, so I'll sometimes switch the navigation to the right hand side;  it's different, it's out of the way so people can concentrate on the text, and it's good if it's the sort of page someone might want to print - they're there for the content, not a printout of a load of one-word GIFs.  You could also make the navigation buttons go down the page oriental-style instead of left-right if, for instance, the site is about some kind of martial art.  I'd advise against right-left text for English words unless you're especially perverse though
  1275. And finally, don't go overboard with trickery - keeping a page simple will mean it loads faster and is easier to navigate and read.  Adding huge banner ads, loads of colour and massive images all over the place won't get you a repeat visit.  Changes in colour in the main text can make the text harder to read.  However, it does make it more fun!  People like a bit of colour, it makes the text more interesting so long as you don't overdo it
  1276.  
  1277. A site that changes colour depending on the time of day
  1278. This month I finally added something to a site I've been meaning to do for ages - one that changes colour depending on the time of day.  As the site is generated by a Perl program every time a page is requested I went overboard and got it to download the sunrise and sunset times every day, so although the site was originally in shades of blue I made it turn red and orange for the hour around sunset, black and blue throughout the night and purplish around sunrise until it returned again to blue for the rest of the day.  It even changes to using a dark background with light text if it knows you're using an NC or Dreamcast!
  1279. While I'm not suggesting that you go quite so overboard, it might be fun to use a little simple JavaScript, SSI or PHP embedded into your page to switch colours based on the time of day, or the day of the week, or even turn green on St. Parick's day.  Or you could remove all the references to colour to a separate file and use a very simple piece of SSI - the #include directive - to copy this colour file back into the page at the relevant places, then when you want to change colours (and perhaps even graphics sets) you just change the colour file and your entire site changes - you could change it four times a year so your site changes with the seasons!
  1280. I hope that this has given you some food for thought, so get out there and start designing
  1281. Richard Goodwin
  1282.  
  1283.  
  1284. ÿÿÿÿVOLUME1/ISSUE2/PD/INDEX.HTM Volume 1, Issue 2, PD World
  1285.  
  1286.  
  1287.  
  1288.  
  1289. PD World
  1290. Alasdair Bailey takes RISC World readers through the world of PD and Shareware.
  1291. Welcome to this, the second issue of PD World.  This
  1292. time we'll be looking at another selection of the best of
  1293. general PD software. However, next issue, I'll be taking
  1294. a closer look at internet-related PD/shareware. Please
  1295. let me know of any new developments or bits of softwar
  1296. you use in this area so I can offer as complete a
  1297. coverage as possible.
  1298. Frax
  1299. The front page of Frax, a new freeware software
  1300. index for RISC OS.
  1301. The Frax web site is a brand-new searchable software index for
  1302. RISC OS PD, freeware and shareware.  With download
  1303. links also included to all items listed, this web site could
  1304. well render the FTP sites and bulletin boards of yesteryear redundant.
  1305. The whole Frax system is fully automated, meaning
  1306. that anyone can quickly and easily submit a new item by
  1307. registering as a member and then entering some
  1308. rudimentary information about the softwar
  1309. along with a download URL which others can follow. 
  1310. Once this process is complete and the submission has
  1311. been moderated, the new item will appear in one of the
  1312. site's categorised sections. From here, others may
  1313. download it and even add a one to five star rating to let
  1314. future punters know what they're getting for their download time.
  1315. At the moment, there's a fair few bits of software on
  1316. Frax and it's well worth a look if you're after a particular
  1317. utility. The great thing about sites like these is that -
  1318. provided enough people submit software - they become
  1319. a one stop shop for PD/shareware and remove the need
  1320. to traipse around numerous authors' web sites to find
  1321. the right program. Of course, there are links to web sites
  1322. on Frax too, just in case you want more information.
  1323. The automated nature of Frax also means that it is
  1324. fully searchable by keyword, phrase or submitter.  Take
  1325. a look at Frax when you have a moment a
  1326.  
  1327. Back It Up
  1328. BackMan is a well-documented hard disc backup
  1329. suite from Matthew Sackman. It is a very usable and
  1330. reliable utility and its range of features means that it can
  1331. be tailored to suit most needs. As would be expected, all
  1332. the usual bits and bobs are supported, including incrementa
  1333. backups and also use with removable media
  1334. such as Zip and floppy discs.
  1335. One feature lacking in the current release is the
  1336. compression of backed-up files.  This is vital to conserve
  1337. costly storage media but can be worked around by
  1338. setting BackMan to use an empty archive as its destinatio
  1339. directory, provided you have the full version of either
  1340. SparkFS or ArcFS.
  1341. BackMan's configuration window is a little scary at
  1342. first sight but a quick read through the very comprehensiv
  1343. manual will set you right in no time. The use of
  1344. HTML to produce manuals for PD and shareware apps
  1345. is becoming ever more common and I like it. These
  1346. days, almost all users will have access to a web browser
  1347. (even if it's only one like as the off-line version of Fresco
  1348. included on this very CD) and HTML makes the inclusion
  1349. of images and data tables a doddle.
  1350. As a shareware offering, BackMan carries a £10
  1351. registration fee but in our opinion, it's well worth it. 
  1352. We've even included a copy of the unregistered version in the SOFTWARE director
  1353. on the CD for you to have a play with; for more informatio
  1354. on the program, visit the BackMan web site at
  1355.  
  1356. Big Brother is Watching!
  1357. VNC (or Virtual Network Computing) is a client-server
  1358. protocol to enable one network workstation to see the
  1359. screen display of another. This can even be extended
  1360. to allow the client to pass keyboard and mouse buffer
  1361. data back to the server. But what use is all of this? 
  1362. Well, it means that if you regularly use more than one
  1363. computer on a network, you can set up VNC to allow
  1364. you to use one machine remotely and save all that desk
  1365. swopping.
  1366. Another use of VNC is to keep an eye on what your
  1367. pupils (or employees) are doing whilst they should be
  1368. working.  By setting up all the machines in a classroom
  1369. or office to accept password-protected VNC connections
  1370. an administrator can periodically log in and check
  1371. on what's going on at the other end.
  1372. The great thing about all this is that you can even do
  1373. it from RISC OS.  Provided you have a fast enough
  1374. network card, the display of the computer being
  1375. remotely viewed appears in a window under RISC OS
  1376. and any keyboard or mouse actions carried out while
  1377. the window is active are passed on to the remote
  1378. machine.  The system is highly configurable with options
  1379. existing to control what's passed to the remote machine
  1380. as well as the type of compression used to minimise the
  1381. network traffic.
  1382. In testing between my Risc PC and PC, the system
  1383. was found to work well in both directions even using the
  1384. ancient 200KB/s network card fitted in the Acorn. 
  1385. Screen mode changes and hardware accelerated
  1386. display modes mess things up on occasion but so long
  1387. as you stay within the confines of the desktop, this
  1388. solution can feel just like a supercharged PC card from
  1389. the Acorn side.
  1390. Clients and servers are available for most platforms
  1391. and all are free to download. Take a look at
  1392. for more info and downloads of Acorn and PC clients and servers.
  1393. Do You Samba?
  1394. While on the subject of networking, the RISC OS port
  1395. of Samba deserves a quick mention.  This port, brought
  1396. to us by David Buxton, allows PC (and Linux/Mac) users
  1397. to access drives and printers on a RISC OS machine
  1398. across a TCP/IP network. Previously, this sort of softwar
  1399. would have cost an arm and a leg but this port of
  1400. the native Linux drive sharing software makes things a
  1401. whole lot easier.
  1402. Samba, combined with the commercial LanMan98 for
  1403. accessing the Windows drives, can help to build a
  1404. seamless network between an Acorn and PC at very
  1405. little cost over that of the network cards and cabling. 
  1406. Take a look at the RISC OS Samba home page a
  1407. for the download and more info on the program.
  1408. Skinned Alive
  1409. Andrew Hill's excellent Matrix themed skin
  1410.  
  1411. MP3 players have received a lot of coverage lately in
  1412. the RISC OS press so I won't draw this item out. 
  1413. Basically, I've included a copy of DigitalCD and a
  1414. selection of the best skins for use with it on the CD for
  1415. your musical benefit.
  1416. DigitalCD is one of a handful of MP3 music player
  1417. front-ends for RISC OS, and these rather cryptic soundin
  1418. skins allow you to customise the look and feel of the
  1419. player's windows.  They're essentially just new sets of
  1420. window furnishings for the player to use in its windows.
  1421. A copy of DigitalCD is included in the SOFTWARE director
  1422. on the CD with the following skins
  1423.     
  1424.     Evil
  1425.     Ferrari
  1426.     LCARS
  1427.     Lunatic
  1428.     Midnight
  1429.     Realities
  1430.     Sonix
  1431.     Matrix
  1432.     Wood
  1433.     
  1434. and these Plug-ins
  1435.     
  1436.         AudioBump
  1437.         Cthugha
  1438.         Firecom
  1439.         TimVis
  1440.     
  1441. For more skins, plug-ins and up-to-date versions, see the DigitalCD
  1442. web site at: JPEG Cleaning
  1443. And finally, news of a small utility which will save
  1444. some people an awful lot of trouble.  JClean by David
  1445. Barrow (a front end to work carried out by Jérôme
  1446. Mathevet) allows the removal of all excess information
  1447. from a JPEG image without re-compressing it and
  1448. hence losing quality.
  1449. This can be very useful for users of certain models of
  1450. digital camera which, even with the use of RISC OS
  1451. connectivity software, still cause problems for SpriteExtend'
  1452. super-quick display routines.  Without stripping
  1453. excess data, the display of pictures from cameras such
  1454. as Nikon's excellent CoolPix 800 has to be done with
  1455. something slower and less fussy like ChangeFSI.
  1456. There's a copy of JClean on the CD for you all to use.
  1457. 'Till next time, goodbye!
  1458. Alasdair Bailey
  1459.  
  1460.  
  1461. ÿÿÿÿVOLUME1/ISSUE2/PDF/INDEX.HTM Volume 1, Issue 2, PDF - not a Printer Definition File
  1462.  
  1463.  
  1464.  
  1465.  
  1466. An idiot's guide to PDF
  1467. Ever wondered what a PDF file was? Ever wondered how you could make them or view them? No? Well read Aaron Timbrell's explanation anyway.
  1468. PDF, as any fool knows, stands for Printer Definition file. Well, yes it does, but it also stands for something else, Portable Document Format. So what is a Portable Document?
  1469. The Portable Document Format
  1470. The PDF format was developed by Adobe to allow easy transport of printed documents in a digital form. The idea is simple, you can open a PDF file in Adobe Acrobat (a free application for Windows) and it looks just like a book, only on screen. You can print it out and it will look just the way the writer intended. PDF files can include pictures and fonts, so the file will look the same on any computer that can read PDF files. PDF is now the de-facto standard for distributing manuals, technical information in fact a whole host of material that normally would be printed. Whenever you buy a new printer, scanner or digital camera, the Windows CD that comes with it is guaranteed to include documentation in PDF format.
  1471. PDF files have a number of advantages over other ways of distributing information: firstly they will appear the same on all computers (provided the program that is displaying the PDF understands it properly). Secondly they can include hyperlinks - so clicking on a reference in the index will take you to the correct page. The third advantage is size; PDF files are quite compact and hence take up little disk space. The full technical specification for Adobe Illustrator files (which can be downloaded from Adobe's web site) runs to over 166 pages, is fully illustrated yet is only 1MB in size, approximately 900 bytes per page. Further space savings can be obtained by compressing PDF files using SparkFS or WinZip.
  1472. PDF files can also include foreign languages (i.e. non Eastern Europe) and will display the same on a PC running a Cyrillic version of Windows, with Russian fonts, as they will on a UK spec machine without the fonts. PDF files are normally fully self contained, everything required to reproduce the document exactly as intended is included in the file. This has lead to the use of PDF files as a means of sending documents to printing houses. Before PDF files were usually sent as PostScript™, but this can cause problems, with missing fonts, incorrect page sizes and a host of other potential problems waiting to trip up the unwary. However with PDF files you know that the file will always be the same and will always be complete, provided the program you are using to view the PDF file understands it of course.
  1473. That roughly sums up what a PDF file is, but what can we do with them under RISC OS? The program that is used to make PDF files on PC and Macintosh machines is Adobe Acrobat, to view and print documents the free Adobe Acrobat Reader can be used. You may think that once again RISCOS users are penalized by this reasonably recent technology, but you'd be wrong.
  1474. PDF Viewer
  1475. PDF Viewer is a freeware program written by Leo Smiers and Derek Noonburg. It allows you to view a PDF file on screen, print it out, and also save out pages in various formats such as Draw and text. PDF Viewer will handle many documents, but by no means all. Like many aspects of computer technology, PDF files have been changing to include new developments, and PDF Viewer just cannot handle some newer files at all. Even on older files it can make mistakes, particularly when it comes to rendering greyscale or colour graphics. However it's free, works most of the time and will often allow you to view PDF files that otherwise would remain a mystery.
  1476.  
  1477. GhostScript 5.50
  1478. GhostScript is another freely available package, supplied under the Alladin Free Public licence, which basically means that you can distribute the package, provided you do not charge for it, and that as a single non-business user you do not have to pay for it. GhostScript started out as a Unix/Linux package, and is command-line driven. You don't get any nice WIMP based front end, so if you want to actually make it do anything you have to wade through the documentation and then write Obey files to make the thing work.
  1479. For example the Obey file shown below will convert the named PostScript file to a PDF file.
  1480. WimpSlot -Min 10000K -Max 10000
  1481. ps2pdf ADFS::HardDisc4.$.Printout ADFS::HardDisc4.$.GhostScrip.PDF/PD
  1482. As you can see this is not user-friendly. However, if you can get to grips with GhostScript, and you have enough memory (I recommend at least 32MB) then you have a powerful package that can preview PostScript files on screen using the optional GhostView application, can convert files into a number of other formats, and can generate very compact and well-defined PDF files using some of the most modern techniques. As a free package GhostScript is superb, if you are prepared to spend the time getting it to operate. If you are not, and you would like a proper front end that makes sense, then you will need a decent well-supported commercial package, such as RiScript PRO.
  1483. RiScript Pro
  1484. RiScript Pro is supplied on two floppy disks, with a 64-page printed ring-bound manual. Installation is simply a matter of dragging the application from the archive on disk one to your hard disk. Disk two contains sample files and other resources. One small problem then appeared, RiScript Pro requires the nested window manager, and the machine I was using didn't have it installed. To be fair to Cerilica it does say on the front of the package that the latest !Boot upgrade, or RISC OS 4 is required, but it might be nice for the warning to be re-worded to make it more obvious. Running the package is just a matter of double clicking, if you then want to view a file such as a PostScript document, simply double click on it and it will appear in the RiScript window.
  1485.  
  1486. RiScript is a very easy application to use, and the manual makes an excellent job of explaining the different types of files that RiScript can handle. The manual also contains a very good explanation of PostScript, PDF and EPS (Encapsulated PostScript) files. Along the top of the RiScript window are simple and easy to use controls that can be used to move through the pages in multiple page documents. Along the bottom of the window are buttons to set the size of the screen display, the paper size & the angle the document will be displayed (in 90 degree steps). Once you have your document in RiScript there are a number of things you can do with it. Firstly you can view it, very useful if you are checking a file before sending it to someone. Secondly you can print it, again very useful if documentation has been supplied in PDF format. Thirdly you can convert the file to something else; for example, you can load a PostScript file created using the Acorn printer drivers and export it as a PDF file.
  1487.  
  1488. RiScript Pro also offers a wide range of configuration options, including full control over the memory allocation used by the internal PostScript RIP (Raster Image Processor). There are also options to control how fonts are translated when you make a PDF document. You can also configure the amount of multi-tasking used when first displaying a file. By default RiScript Pro multi-tasks while first rendering the file to screen, this results in an initially slow update, but keeps the computer usable while files are processed. Once the whole file has been processed screen update is then almost instantaneous. This type of feature demonstrates the thought that has gone into the package.
  1489.  
  1490. Font handling is also included with RiScript Pro. If you use the default RISC OS fonts, such as Homerton, then the file will be much smaller. This is due to the way that PDF files work, if you create a file using Homerton, and then view it on a PC the font Arial will be used for display. If however your document contains other fonts then these need to be included in the document. RiScript Pro can do this by converting each line of text into shapes that can be rendered on any machine; while this results in larger files, the finished PDF will be identical to the original file. The printed manual covers all this in great detail and any user of the package would be well advised to read this section.
  1491. PDF files generated on another platform may not have all the text changed to shapes, but may include the fonts with the document. In this case RiScript Pro can generate an Acorn version of the font from the data in the file and then that font can be used just like any other Acorn font. All such converted fonts are stored in a special directory inside the RiScript Pro application. Its a bit of a shame that RiScript Pro cannot convert Acorn fonts and store them inside the document, as this would result in smaller files that rendered faster on other machines.
  1492. RiScript Pro handles PostScript files as generated by the RISC OS printer drivers as its input. You cannot load a Draw file into RiScript and then export it as PostScript or PDF. You must first use a PostScript printer driver, configure it to print to file and then print from your application. This is the normal way that a user would make PostScript files to send off to a bureau. These could then be printed onto film and user by a commercial printed to print the job on a printing press. RiScript Pro allows you to check the file and see that it looks correct before you send it. This could in theory save a lot of money and heartache, as anyone who has ever had a PostScript file go wrong will testify.
  1493. So who would use RiScript Pro? Anyone who wants to transfer documents from an Acorn to a PC and keep all the formatting, fonts and graphics intact. Also anyone who makes PostScript files and want to check them before sending them to be printed. However if you are creating and viewing files commercially then you should be aware of a few problems that I experienced with RiScript Pro (home users are quite unlikely to encounter these glitches).
  1494. Firstly the preview of PostScript files on screen can be wrong in some circumstances, a file can appear to be faulty, but in fact be correct. Interestingly the Draw file export seems to always be correct, it is only the display on screen that is wrong. Secondly RiScript could not handle some PDF files generated by GhostScript, even though the files worked fine in Adobe Acrobat. This does raise the worry that RiScript won't be able to handle all the types of PDF file you can throw at it. Thirdly RiScript wouldn't work with some EPS files, items like AdobePackedArray caused the program to reject the file. I have passed details of these problems onto Cerilica and they have promised that they will be looked at in a future major upgrade planned for later this year.
  1495. Conclusion
  1496. If you want to view the odd PDF file then get hold of PDFView, after all it is free. If you are interested in generating PDF files to send to other people and you don't mind pulling your hair out and having a fast machine with plenty of RAM - and some technical programming skills - then get hold of GhostScript 5.50 and see if it works for you. If, like most people, you want an easy and quick way of viewing and generating files then buy a copy of RiScript Pro and just use it; it may not be perfect, but it's very, very close.
  1497. Product details
  1498.         
  1499.                 Product:
  1500.                 Cerilica RiScript PRO
  1501.         
  1502.         
  1503.                 
  1504.                         Supplier
  1505.                 
  1506.                 
  1507.                         Cerilica Lt
  1508.                 
  1509.         
  1510.         
  1511.                 Price:
  1512.                 £59 inc VAT
  1513.         
  1514.         
  1515.                 Address:
  1516.                 
  1517.                         PO Box 4
  1518.                         Ross-on-Wy
  1519.                         HR9 7W
  1520.                 
  1521.         
  1522.         
  1523.                 Tel:
  1524.                 01989 567350
  1525.         
  1526.         
  1527.                 WWW:
  1528.                         
  1529.         
  1530.                 E-mail:
  1531.                         
  1532.  
  1533. Aaron Timbrell
  1534.  
  1535.  
  1536. ÿÿÿÿVOLUME1/ISSUE2/PORTABLE/INDEX.HTM Volume 1, Issue 2, Portable World
  1537.  
  1538.  
  1539.  
  1540.  
  1541. Portable World
  1542. John Woodthorpe looks at the new netBook.
  1543. Ron
  1544. The biggest news in the world of RISC OS and portable machines has to be the announcement that RISCOS Ltd have reached agreement in principle with Psion Enterprise to allow them to produce RISC OS 4 to run on the netBook. The project is known as 'Ron', standing for 'RISC OS on netBook' and it's expected to be available later in the year. There's an The netBook
  1545. The netBook was released last year, although supplies have only just become more readily available. Being produced by Psion Enterprise it is really intended to be supplied to corporate customers, and Psion Computers produced their own version in the Series 7. The two machines look very similar, and they do indeed have a lot in common. Both run EPOC, have a StrongARM processor and share the same form factor. The differences are that the netBook is faster (191 MHz rather than the 130 MHz of the Series 7), has more memory (32 MB expandable to 64 MB as opposed to the 16 MB expandable to 32 MB of the Series 7) and crucially, loads its operating system from a CompactFlash card
  1546. The Series 7 has a conventional ROM-based version of the EPOC operating system, and is missing the vital boot loader that is present in the netBook. It may be possible to modify the Series 7 to run RISC OS, but that's very uncertain at the moment. The top priority is to get RISC OS running on the netBook. Not unnaturally that's annoyed those who bought a Series 7 before Ron was announced, but RISCOS Ltd can't be held responsible for picking the Psion Enterprise machine as it is designed to be able to load other operating systems. There's no certainty that Ron will actually appear, especially if very few people express interest in buying it, so the whole discussion may turn out to be academic anyway.
  1547.  
  1548. The netBook - an open and shut case
  1549. Like many RISC OS users, I was contemplating getting a Series 7, and had been waiting for months for Psion Computers to send me a loan machine for review. However I never got to the top of the waiting list, and when Ron was announced I looked around to buy a netBook. Being intended as a corporate product, that wasn't easy but I eventually found a dealer with stock and bought one for £882. RISC OS dealers such as Heretical Thoughts
  1550. The netBook is a superb machine, and I'm absolutely delighted with mine. I'm so pleased with the freedom it gives me to write without occupying the main family computer that I'm tempted to think heretical thoughts. I'd be really happy to be able run RISC OS on my netBook, but do I actually need it? In many ways I don't. Under EPOC, I have a capable word processor that produces files I can effortlessly convert to RTF on my Risc PC and load them into TechWriter Pro+ for final editing.
  1551. I also have a reasonable e-mail application, database, spreadsheet, diary, and Web browser. In fact I've got two browsers, including a port of Opera that's a lot faster and better than the built-in one.
  1552. The EPOC port of Opera which supports SSL, cookies, JavaScript and frames.
  1553. I also have access to a huge amount of software to do things like manage my mobile phone by IR, interact with a GPS receiver to help me navigate around Europe and the US, and plan the best routes within towns in the UK.
  1554. Using a GPS to see where I am.
  1555. I can't do any of those under RISC OS, and if I devote the netBook to RISC OS I will lose those abilities. I will also need extra storage, and that will probably be an IBM Microdrive as described o
  1556. E-mail and Web facilities (e.g. the ANT Suite
  1557. A diary such as Organiser
  1558. An HTML editor such as HTMLEdit
  1559. StrongEd (or Zap, as I don't want to get into a fight
  1560. A spreadsheet and database, or a combined package such as Fireworkz
  1561. Optionally, a DTP package such as Ovation Pro
  1562. Now that starts to get very hungry for the meagre memory available, especially as the internal RAM is dynamically allocated between storage and application memory. I'll also need some sort of synchronisation application to make sure that the files for all the applications are in step on both the desktop and portable machines. There's no way that I'll chose the netBook's 256 colour 640 x 480 display over my 17" monitor with 32,000 colours running at 1024 x 768. Hence no matter what software I run on the netBook, I'll always finish off my writing on the Risc PC whenever the rest of the family let me have time on it
  1563. If that's the case, why do I need a RISC OS portable? I can do many of the same things via EPOC combined with PsiFS, ChangePSI and Psiconv on my Risc PC. That approach will be a lot cheaper and can be done with a Series 7, 5mx, 5 or even a Revo
  1564. Please don't misunderstand me. I'm as committed to RISC OS as anyone else, and I confess to sometimes buying software that I don't make a lot of use of, just because I've wanted to support a RISC OS developer. I will also be frantically elbowing people out of the way to get hold of Ron to install on my netBook, but I'll continue to use EPOC because of the way it complements RISC OS so wonderfully
  1565. And So?
  1566. What I'm really saying is don't buy a netBook simply as a potential RISC OS machine. Buy one as a stunning EPOC machine that you may well be able to run RISC OS on later this year. Whatever you do though, don't discard EPOC as it has so much to offer RISC OS users. I plan to use both operating systems on the same machine to do the things that each one is good at. Next time, I'll look in more detail at how you can integrate an EPOC palmtop with a RISC OS desktop machine using the software that is available. If you can't afford a netBook at the moment, don't despair as EPOC really does offer you so much, and thanks to some talented RISC OS developers, much of that potential can already be realised. I certainly plan to keep my EPOC applications and data on one CompactFlash card and use another one for RISC OS. That would allow me to choose the right operating system for the right tasks
  1567. John Woodthorpe
  1568.  
  1569.  
  1570. ÿÿÿÿVOLUME1/ISSUE2/PUZZLE/INDEX.HTM Volume 1, Issue 2, Puzzle World
  1571.  
  1572.  
  1573.  
  1574.  
  1575. Puzzle World
  1576. Rex sets RISC World readers another cunning conundrum.
  1577. (This file is also available 
  1578. Please send solutions 
  1579. The winning solution for last issue's puzzle was sent in by Anne Parmenter of Chippenham
  1580. The solution appreas below:
  1581.  
  1582. Rex
  1583.  
  1584.